Update verilog/{dv,includes}
diff --git a/verilog/dv/make/sim.makefile b/verilog/dv/make/sim.makefile
new file mode 100644
index 0000000..8345579
--- /dev/null
+++ b/verilog/dv/make/sim.makefile
@@ -0,0 +1,191 @@
+# SPDX-FileCopyrightText: 2020 Efabless Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+# Questa/Icarus
+SIMULATOR ?= Questa
+
+export IVERILOG_DUMPER = fst
+
+# RTL/GL/GL_SDF
+SIM?=RTL
+
+
+.SUFFIXES:
+
+
+ifeq ($(SIMULATOR),Icarus)
+all: ${BLOCKS:=.lst} sim_icarus
+else
+all: ${BLOCKS:=.lst} sim_questa
+endif
+
+hex: ${BLOCKS:=.hex}
+
+#.SUFFIXES:
+
+##############################################################################
+# Comiple firmeware
+##############################################################################
+%.elf: %.c $(LINKER_SCRIPT) $(SOURCE_FILES)
+ ${GCC_PATH}/${GCC_PREFIX}-gcc -g \
+ -I$(FIRMWARE_PATH) \
+ -I$(VERILOG_PATH)/dv/generated \
+ -I$(VERILOG_PATH)/dv/ \
+ -I$(VERILOG_PATH)/common \
+ $(CPUFLAGS) \
+ -Wl,-Bstatic,-T,$(LINKER_SCRIPT),--strip-debug \
+ -ffreestanding -nostdlib -o $@ $(SOURCE_FILES) $<
+
+%.lst: %.elf
+ ${GCC_PATH}/${GCC_PREFIX}-objdump -d -S $< > $@
+
+%.hex: %.elf
+ ${GCC_PATH}/${GCC_PREFIX}-objcopy -O verilog $< $@
+ # to fix flash base address
+ sed -ie 's/@10/@00/g' $@
+
+%.bin: %.elf
+ ${GCC_PATH}/${GCC_PREFIX}-objcopy -O binary $< /dev/stdout | tail -c +1048577 > $@
+
+
+##############################################################################
+# Runing the simulations
+##############################################################################
+
+#------------------------------------
+# Icarus Veriog
+#------------------------------------
+ifeq ($(SIMULATOR),Icarus)
+
+COMPOPT := -g2005-sv
+
+%.vvp: %_tb.v %.hex
+
+## RTL
+ifeq ($(SIM),RTL)
+ ifeq ($(CONFIG),caravel_user_project)
+ iverilog $(COMPOPT) -Ttyp -DFUNCTIONAL -DSIM -DUSE_POWER_PINS -DUNIT_DELAY=#1 \
+ -f$(VERILOG_PATH)/includes/includes.rtl.caravel \
+ -f$(USER_PROJECT_VERILOG)/includes/includes.rtl.$(CONFIG) -o $@ $<
+ else
+ iverilog $(COMPOPT) -Ttyp -DFUNCTIONAL -DSIM -DUSE_POWER_PINS -DUNIT_DELAY=#1 \
+ -f$(VERILOG_PATH)/includes/includes.rtl.$(CONFIG) \
+ -f$(CARAVEL_PATH)/rtl/__user_project_wrapper.v -o $@ $<
+ endif
+endif
+
+## GL
+ifeq ($(SIM),GL)
+ ifeq ($(CONFIG),caravel_user_project)
+ iverilog $(COMPOPT) -Ttyp -DFUNCTIONAL -DGL -DUSE_POWER_PINS -DUNIT_DELAY=#1 \
+ -f$(VERILOG_PATH)/includes/includes.gl.caravel \
+ -f$(USER_PROJECT_VERILOG)/includes/includes.gl.$(CONFIG) -o $@ $<
+ else
+ iverilog $(COMPOPT) -Ttyp -DFUNCTIONAL -DGL -DUSE_POWER_PINS -DUNIT_DELAY=#1 \
+ -f$(VERILOG_PATH)/includes/includes.gl.$(CONFIG) \
+ -f$(CARAVEL_PATH)/gl/__user_project_wrapper.v -o $@ $<
+ endif
+endif
+
+## GL+SDF
+ifeq ($(SIM),GL_SDF)
+ ifeq ($(CONFIG),caravel_user_project)
+ cvc64 +interp \
+ +define+SIM +define+FUNCTIONAL +define+GL +define+USE_POWER_PINS +define+UNIT_DELAY +define+ENABLE_SDF \
+ +change_port_type +dump2fst +fst+parallel2=on +nointeractive +notimingchecks +mipdopt \
+ -f $(VERILOG_PATH)/includes/includes.gl+sdf.caravel \
+ -f $(USER_PROJECT_VERILOG)/includes/includes.gl+sdf.$(CONFIG) $<
+ else
+ cvc64 +interp \
+ +define+SIM +define+FUNCTIONAL +define+GL +define+USE_POWER_PINS +define+UNIT_DELAY +define+ENABLE_SDF \
+ +change_port_type +dump2fst +fst+parallel2=on +nointeractive +notimingchecks +mipdopt \
+ -f $(VERILOG_PATH)/includes/includes.gl+sdf.$(CONFIG) \
+ -f $CARAVEL_PATH/gl/__user_project_wrapper.v $<
+ endif
+endif
+
+sim_icarus: ${BLOCKS:=.vvp}
+ vvp $< $(SIMOPT)
+
+# twinwave: RTL-%.vcd GL-%.vcd
+# twinwave RTL-$@ * + GL-$@ *
+
+#------------------------------------
+# Questa
+#------------------------------------
+else
+
+COMPOPT := -64 -work work -sv -sv12compat -mfcu -suppress vlog-2892,vlog-2388,vlog-2248 +acc=lprn
+COMPOPT += ../vip/APM_APS6404L-3SQN_SQPI_PSRAM_model_v2.9_encrypt.vp_modelsim
+SIMOPT := -64 -c -suppress vsim-3009 -debugDB $(USER_SIMOPT)
+
+sim_questa:
+## RTL
+ifeq ($(SIM),RTL)
+ rm -rf work
+ vlib work
+ ifeq ($(CONFIG),caravel_user_project)
+ vlog $(COMPOPT) +define+SIMULATOR_QUESTA +define+FUNCTIONAL +define+SIM +define+USE_POWER_PINS +define+UNIT_DELAY=#1 \
+ -f $(VERILOG_PATH)/includes/includes.rtl.caravel \
+ -f $(USER_PROJECT_VERILOG)/includes/includes.rtl.$(CONFIG) \
+ ${BLOCKS:=_tb.v}
+ vsim work.testbench $(SIMOPT) -do "$(DOOPT) run -all; quit;"
+ else
+ echo "CONFIG = $(CONFIG): not supported."
+ exit
+ endif
+endif
+
+## GL
+ifeq ($(SIM),GL)
+ rm -rf work
+ vlib work
+ ifeq ($(CONFIG),caravel_user_project)
+ vlog $(COMPOPT) +define+SIMULATOR_QUESTA +define+FUNCTIONAL +define+GL +define+USE_POWER_PINS +define+UNIT_DELAY=#1 \
+ -f $(VERILOG_PATH)/includes/includes.gl.caravel \
+ -f $(USER_PROJECT_VERILOG)/includes/includes.gl.$(CONFIG) \
+ ${BLOCKS:=_tb.v}
+ vsim work.testbench $(SIMOPT) -do "$(DOOPT) run -all; quit;"
+ else
+ echo "CONFIG = $(CONFIG): not supported."
+ exit
+ endif
+endif
+endif
+
+check-env:
+ifndef PDK_ROOT
+ $(error PDK_ROOT is undefined, please export it before running make)
+endif
+ifeq (,$(wildcard $(PDK_ROOT)/$(PDK)))
+ $(error $(PDK_ROOT)/$(PDK) not found, please install pdk before running make)
+endif
+ifeq (,$(wildcard $(GCC_PATH)/$(GCC_PREFIX)-gcc ))
+ $(error $(GCC_PATH)/$(GCC_PREFIX)-gcc is not found, please export GCC_PATH and GCC_PREFIX before running make)
+endif
+# check for efabless style installation
+ifeq (,$(wildcard $(PDK_ROOT)/$(PDK)/libs.ref/*/verilog))
+SIM_DEFINES := ${SIM_DEFINES} -DEF_STYLE
+endif
+
+
+# ---- Clean ----
+
+clean:
+ rm -rf *.elf *.hex *.bin *.vvp *.log *.vcd* *.lst *.hexe *.err *.dbg *.wlf transcript work
+
+.PHONY: clean hex all
+
diff --git a/verilog/dv/marmot_test1/Makefile b/verilog/dv/marmot_test1/Makefile
index 3fd0b56..b1dbeed 100644
--- a/verilog/dv/marmot_test1/Makefile
+++ b/verilog/dv/marmot_test1/Makefile
@@ -14,8 +14,27 @@
#
# SPDX-License-Identifier: Apache-2.0
+# RTL/GL/GL_SDF
+export SIM ?= RTL
-
+# Questa/Icarus
+#SIMULATOR ?= Questa
+#DOOPT = log -r /testbench/* ;
+
+SIMULATOR ?= Icarus
+
+export TARGET_PATH = $(MARMOT_ROOT)
+export DESIGNS = $(TARGET_PATH)
+export CARAVEL_ROOT = $(TARGET_PATH)/caravel
+export MCW_ROOT = $(TARGET_PATH)/mgmt_core_wrapper
+export CORE_VERILOG_PATH = $(MCW_ROOT)/verilog
+#export PDK_ROOT = $(PDK_ROOT)
+#export PDK = $(PDK)
+export TOOLS = $(RISCV)
+export GCC_PREFIX = riscv64-unknown-linux-gnu
+
+TESTCASE_DIR = $(HOME)/Development/RISC-V/chipyard/vlsi/sim/testcase
+
PWDD := $(shell pwd)
BLOCKS := $(shell basename $(PWDD))
@@ -23,10 +42,13 @@
CONFIG = caravel_user_project
-
include $(MCW_ROOT)/verilog/dv/make/env.makefile
include $(MCW_ROOT)/verilog/dv/make/var.makefile
include $(MCW_ROOT)/verilog/dv/make/cpu.makefile
-include $(MCW_ROOT)/verilog/dv/make/sim.makefile
+include ../make/sim.makefile
+setup:
+ echo "// $(TESTCASE_DIR)/hello/spi_flash.mem" > spi_flash.mem
+ cat $(TESTCASE_DIR)/hello/spi_flash.mem >> spi_flash.mem
+ cp $(TESTCASE_DIR)/hello/spi_flash.lis spi_flash.lis
diff --git a/verilog/dv/marmot_test1/marmot_test1_tb.v b/verilog/dv/marmot_test1/marmot_test1_tb.v
index 717044e..f08c8e4 100644
--- a/verilog/dv/marmot_test1/marmot_test1_tb.v
+++ b/verilog/dv/marmot_test1/marmot_test1_tb.v
@@ -55,40 +55,41 @@
wire reset = `MARMOT.wb_rst_i;
`ifdef SIM
- wire [31:0] PC = `CORE.coreMonitorBundle_pc;
+ wire [31:0] PC = `CORE.coreMonitorBundle_pc;
`else
- wire [31:0] PC = {`MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[31] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[30] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[29] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[28] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[27] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[26] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[25] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[24] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[23] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[22] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[21] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[20] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[19] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[18] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[17] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[16] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[15] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[14] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[13] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[12] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[11] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[10] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[9] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[8] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[7] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[6] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[5] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[4] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[3] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[2] ,
- `MARMOT.\MarmotCaravelChip.MarmotCaravelPlatform.sys.tile.core.coreMonitorBundle_pc[1] ,
- 1'b0};
+ wire [31:0] PC = {
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[31] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[30] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[29] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[28] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[27] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[26] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[25] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[24] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[23] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[22] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[21] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[20] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[19] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[18] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[17] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[16] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[15] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[14] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[13] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[12] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[11] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[10] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[9] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[8] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[7] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[6] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[5] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[4] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[3] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[2] ,
+ `MARMOT.\MarmotCaravelChip_dut_sys_tile_prci_domain_tile_reset_domain_tile_core_coreMonitorBundle_pc[1] ,
+ 1'b0};
`endif
//-------------------------------------------------------------------------------
@@ -121,10 +122,10 @@
//-------------------------------------------------------------------------------
// Waveform
initial begin
- `ifdef WAVEFORM
- $dumpfile("marmot_test1.vcd");
+ if ($test$plusargs("waveform")) begin
+ $dumpfile("wave.vcd");
$dumpvars(0, `TB);
- `endif
+ end
end
//-------------------------------------------------------------------------------
@@ -142,11 +143,6 @@
$sdf_annotate("../../../mgmt_core_wrapper/sdf/mgmt_core_wrapper.sdf", `CARAVEL.soc);
$sdf_annotate("../../../sdf/user_project_wrapper.sdf.gz", `USER_PROJECT_WRAPPER);
$sdf_annotate("../../../sdf/Marmot.sdf.gz", `MARMOT);
- $sdf_annotate("../../../sdf/clk_skew_adjust.sdf.gz", `USER_PROJECT_WRAPPER.u_clk_skew_adjust_0);
- $sdf_annotate("../../../sdf/clk_skew_adjust.sdf.gz", `USER_PROJECT_WRAPPER.u_clk_skew_adjust_1);
- $sdf_annotate("../../../sdf/clk_skew_adjust.sdf.gz", `USER_PROJECT_WRAPPER.u_clk_skew_adjust_2);
- $sdf_annotate("../../../sdf/clk_skew_adjust.sdf.gz", `USER_PROJECT_WRAPPER.u_clk_skew_adjust_3);
- $sdf_annotate("../../../sdf/clk_skew_adjust.sdf.gz", `USER_PROJECT_WRAPPER.u_clk_skew_adjust_4);
end
`endif
@@ -166,18 +162,18 @@
integer exception_pc_count;
always @ (posedge clock) begin
- //if ($test$plusargs("pc_monitor")) begin
+ if ($test$plusargs("pc_monitor")) begin
if (cycle % 1000 == 0) begin
$fwrite(32'h80000002, "[%t] %10d pc=%08x\n", $time, cycle, PC);
end
- //end
+ end
// Finish on PC=x
- if (^PC === 1'bx) begin
- $display("[%t] PC=xxxxxxxx", $time);
- repeat (50) @(posedge clock);
- $finish;
- end
+ //if (^PC === 1'bx) begin
+ // $display("[%t] PC=xxxxxxxx", $time);
+ // repeat (50) @(posedge clock);
+ // $finish;
+ //end
// Finish on exception
if (PC == 32'h00000000 || PC == 32'h00000002) begin
@@ -322,10 +318,9 @@
);
//-------------------------------------------------------------------------------
-// SPI RAM model for Marmot
-`ifdef SIMULATOR_QUESTA
// SPI RAM model (APM APS6404L-3SQN_SQPI_PSRAM)
-sqpi_model #(.VeriOutStr(1), .STOP_ON_ERROR(1)) spi_ram
+`ifdef SIMULATOR_QUESTA
+sqpi_model #(.VeriOutStr(1), .STOP_ON_ERROR(0)) spi_ram
(
.SCK_i (mprj_io[io_spi2_sck]),
.nCE_i (mprj_io[io_spi2_csb]),
diff --git a/verilog/dv/marmot_test1/run_sim.csh b/verilog/dv/marmot_test1/run_sim.csh
new file mode 100755
index 0000000..af27425
--- /dev/null
+++ b/verilog/dv/marmot_test1/run_sim.csh
@@ -0,0 +1,16 @@
+#!/bin/csh -f
+
+#set sim = RTL
+set sim = GL
+
+set simopt =
+#set simopt = "$simopt +waveform"
+set simopt = "$simopt +pc_monitor"
+#set simopt = "$simopt +max_cycle=200000"
+
+if ($sim == RTL) then
+ make SIM=$sim SIMOPT="$simopt" |& spike-dasm | egrep -v '\[0\] pc=' | tee sim_${sim}.log
+else
+ make SIM=$sim SIMOPT="$simopt" |& tee sim_${sim}.log
+endif
+
diff --git a/verilog/dv/marmot_test1/setup.csh b/verilog/dv/marmot_test1/setup.csh
deleted file mode 100755
index f429bd5..0000000
--- a/verilog/dv/marmot_test1/setup.csh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/csh -f
-
-set testcase_dir = /home/shc/Development/RISC-V/freedom/sim/testcase
-
-#cp -p $testcase_dir/dhrystone-2.1/gcc_dry2reg_flash.mem .
-cp -p $testcase_dir/hello/spi_flash.mem hello_flash.mem
-
-$testcase_dir/../../script/mk_init_ff.py $MARMOT_ROOT/verilog/gl/Marmot.v > init_ff.v
-
diff --git a/verilog/dv/marmot_test1/spi_flash.lis b/verilog/dv/marmot_test1/spi_flash.lis
new file mode 100644
index 0000000..0a54585
--- /dev/null
+++ b/verilog/dv/marmot_test1/spi_flash.lis
@@ -0,0 +1,1218 @@
+
+spi_flash.elf: file format elf32-littleriscv
+
+
+Disassembly of section .text:
+
+20000000 <_prog_start>:
+20000000: 00000093 li ra,0
+20000004: 00000113 li sp,0
+20000008: 00000193 li gp,0
+2000000c: 00000213 li tp,0
+20000010: 00000293 li t0,0
+20000014: 00000313 li t1,0
+20000018: 00000393 li t2,0
+2000001c: 00000413 li s0,0
+20000020: 00000493 li s1,0
+20000024: 00000513 li a0,0
+20000028: 00000593 li a1,0
+2000002c: 00000613 li a2,0
+20000030: 00000693 li a3,0
+20000034: 00000713 li a4,0
+20000038: 00000793 li a5,0
+2000003c: 00000813 li a6,0
+20000040: 00000893 li a7,0
+20000044: 00000913 li s2,0
+20000048: 00000993 li s3,0
+2000004c: 00000a13 li s4,0
+20000050: 00000a93 li s5,0
+20000054: 00000b13 li s6,0
+20000058: 00000b93 li s7,0
+2000005c: 00000c13 li s8,0
+20000060: 00000c93 li s9,0
+20000064: 00000d13 li s10,0
+20000068: 00000d93 li s11,0
+2000006c: 00000e13 li t3,0
+20000070: 00000e93 li t4,0
+20000074: 00000f13 li t5,0
+20000078: 00000f93 li t6,0
+2000007c: 00800913 li s2,8
+20000080: 30491073 csrw mie,s2
+20000084: 00000493 li s1,0
+20000088: f1402973 csrr s2,mhartid
+2000008c: 03249663 bne s1,s2,200000b8 <_prog_start+0xb8>
+20000090: 08002137 lui sp,0x8002
+20000094: ff010113 addi sp,sp,-16 # 8001ff0 <_stack>
+20000098: 421000ef jal ra,20000cb8 <main>
+2000009c: 020004b7 lui s1,0x2000
+200000a0: 00100913 li s2,1
+200000a4: 0124a023 sw s2,0(s1) # 2000000 <spi_quad_mode-0x6000000>
+200000a8: 00448493 addi s1,s1,4
+200000ac: 02000937 lui s2,0x2000
+200000b0: 08090913 addi s2,s2,128 # 2000080 <spi_quad_mode-0x5ffff80>
+200000b4: ff24c6e3 blt s1,s2,200000a0 <_prog_start+0xa0>
+200000b8: 10500073 wfi
+200000bc: 34402973 csrr s2,mip
+200000c0: 00897913 andi s2,s2,8
+200000c4: fe090ae3 beqz s2,200000b8 <_prog_start+0xb8>
+200000c8: 020004b7 lui s1,0x2000
+200000cc: f1402973 csrr s2,mhartid
+200000d0: 00291913 slli s2,s2,0x2
+200000d4: 00990933 add s2,s2,s1
+200000d8: 00092023 sw zero,0(s2)
+200000dc: 0004a903 lw s2,0(s1) # 2000000 <spi_quad_mode-0x6000000>
+200000e0: fe091ee3 bnez s2,200000dc <_prog_start+0xdc>
+200000e4: 00448493 addi s1,s1,4
+200000e8: 02000937 lui s2,0x2000
+200000ec: 08090913 addi s2,s2,128 # 2000080 <spi_quad_mode-0x5ffff80>
+200000f0: ff24c6e3 blt s1,s2,200000dc <_prog_start+0xdc>
+
+200000f4 <loop>:
+200000f4: 0000006f j 200000f4 <loop>
+
+200000f8 <memset>:
+200000f8: 0ff5f593 andi a1,a1,255
+200000fc: 00c50733 add a4,a0,a2
+20000100: 87aa mv a5,a0
+20000102: 00c05763 blez a2,20000110 <memset+0x18>
+20000106: 0785 addi a5,a5,1
+20000108: feb78fa3 sb a1,-1(a5)
+2000010c: fef71de3 bne a4,a5,20000106 <memset+0xe>
+20000110: 8082 ret
+
+20000112 <memcpy>:
+20000112: 00c05c63 blez a2,2000012a <memcpy+0x18>
+20000116: 962a add a2,a2,a0
+20000118: 87aa mv a5,a0
+2000011a: 0005c703 lbu a4,0(a1)
+2000011e: 0785 addi a5,a5,1
+20000120: 0585 addi a1,a1,1
+20000122: fee78fa3 sb a4,-1(a5)
+20000126: fef61ae3 bne a2,a5,2000011a <memcpy+0x8>
+2000012a: 8082 ret
+
+2000012c <memcmp>:
+2000012c: 02c05563 blez a2,20000156 <memcmp+0x2a>
+20000130: 962e add a2,a2,a1
+20000132: a019 j 20000138 <memcmp+0xc>
+20000134: 02b60163 beq a2,a1,20000156 <memcmp+0x2a>
+20000138: 00054783 lbu a5,0(a0)
+2000013c: 0005c703 lbu a4,0(a1)
+20000140: 0505 addi a0,a0,1
+20000142: 0585 addi a1,a1,1
+20000144: fee788e3 beq a5,a4,20000134 <memcmp+0x8>
+20000148: 00f73533 sltu a0,a4,a5
+2000014c: 40a00533 neg a0,a0
+20000150: 8909 andi a0,a0,2
+20000152: 157d addi a0,a0,-1
+20000154: 8082 ret
+20000156: 4501 li a0,0
+20000158: 8082 ret
+
+2000015a <strlen>:
+2000015a: 00054783 lbu a5,0(a0)
+2000015e: 872a mv a4,a0
+20000160: 4501 li a0,0
+20000162: cb81 beqz a5,20000172 <strlen+0x18>
+20000164: 0505 addi a0,a0,1
+20000166: 00a707b3 add a5,a4,a0
+2000016a: 0007c783 lbu a5,0(a5)
+2000016e: fbfd bnez a5,20000164 <strlen+0xa>
+20000170: 8082 ret
+20000172: 8082 ret
+
+20000174 <strcpy>:
+20000174: 0005c783 lbu a5,0(a1)
+20000178: 00f50023 sb a5,0(a0)
+2000017c: 0005c783 lbu a5,0(a1)
+20000180: cb99 beqz a5,20000196 <strcpy+0x22>
+20000182: 87aa mv a5,a0
+20000184: 0015c703 lbu a4,1(a1)
+20000188: 0585 addi a1,a1,1
+2000018a: 0785 addi a5,a5,1
+2000018c: 00e78023 sb a4,0(a5)
+20000190: 0005c703 lbu a4,0(a1)
+20000194: fb65 bnez a4,20000184 <strcpy+0x10>
+20000196: 8082 ret
+
+20000198 <strcmp>:
+20000198: a019 j 2000019e <strcmp+0x6>
+2000019a: 00e79d63 bne a5,a4,200001b4 <strcmp+0x1c>
+2000019e: 00054783 lbu a5,0(a0)
+200001a2: 0005c703 lbu a4,0(a1)
+200001a6: 0505 addi a0,a0,1
+200001a8: 0585 addi a1,a1,1
+200001aa: 00e7e6b3 or a3,a5,a4
+200001ae: f6f5 bnez a3,2000019a <strcmp+0x2>
+200001b0: 4501 li a0,0
+200001b2: 8082 ret
+200001b4: 00f73533 sltu a0,a4,a5
+200001b8: 40a00533 neg a0,a0
+200001bc: 8909 andi a0,a0,2
+200001be: 157d addi a0,a0,-1
+200001c0: 8082 ret
+
+200001c2 <strncmp>:
+200001c2: 87aa mv a5,a0
+200001c4: 00c50833 add a6,a0,a2
+200001c8: 0007c703 lbu a4,0(a5)
+200001cc: 40f806b3 sub a3,a6,a5
+200001d0: eb19 bnez a4,200001e6 <strncmp+0x24>
+200001d2: 0005c703 lbu a4,0(a1)
+200001d6: c70d beqz a4,20000200 <strncmp+0x3e>
+200001d8: 9532 add a0,a0,a2
+200001da: 8d1d sub a0,a0,a5
+200001dc: 00a02533 sgtz a0,a0
+200001e0: 40a00533 neg a0,a0
+200001e4: 8082 ret
+200001e6: 00d05d63 blez a3,20000200 <strncmp+0x3e>
+200001ea: 0005c683 lbu a3,0(a1)
+200001ee: 0785 addi a5,a5,1
+200001f0: 0585 addi a1,a1,1
+200001f2: fce68be3 beq a3,a4,200001c8 <strncmp+0x6>
+200001f6: 4505 li a0,1
+200001f8: fee6e6e3 bltu a3,a4,200001e4 <strncmp+0x22>
+200001fc: 557d li a0,-1
+200001fe: 8082 ret
+20000200: 4501 li a0,0
+20000202: 8082 ret
+
+20000204 <putc>:
+20000204: 1141 addi sp,sp,-16
+20000206: c422 sw s0,8(sp)
+20000208: c606 sw ra,12(sp)
+2000020a: 47a9 li a5,10
+2000020c: 842a mv s0,a0
+2000020e: 00f50863 beq a0,a5,2000021e <putc+0x1a>
+20000212: 85a2 mv a1,s0
+20000214: 4422 lw s0,8(sp)
+20000216: 40b2 lw ra,12(sp)
+20000218: 4501 li a0,0
+2000021a: 0141 addi sp,sp,16
+2000021c: a261 j 200003a4 <serial_send_byte>
+2000021e: 45b5 li a1,13
+20000220: 4501 li a0,0
+20000222: 2249 jal 200003a4 <serial_send_byte>
+20000224: 85a2 mv a1,s0
+20000226: 4422 lw s0,8(sp)
+20000228: 40b2 lw ra,12(sp)
+2000022a: 4501 li a0,0
+2000022c: 0141 addi sp,sp,16
+2000022e: aa9d j 200003a4 <serial_send_byte>
+
+20000230 <getc>:
+20000230: 1141 addi sp,sp,-16
+20000232: 4501 li a0,0
+20000234: c422 sw s0,8(sp)
+20000236: c606 sw ra,12(sp)
+20000238: 225d jal 200003de <serial_recv_byte>
+2000023a: 47b5 li a5,13
+2000023c: 4429 li s0,10
+2000023e: 00f50363 beq a0,a5,20000244 <getc+0x14>
+20000242: 842a mv s0,a0
+20000244: 8522 mv a0,s0
+20000246: 3f7d jal 20000204 <putc>
+20000248: 40b2 lw ra,12(sp)
+2000024a: 8522 mv a0,s0
+2000024c: 4422 lw s0,8(sp)
+2000024e: 0141 addi sp,sp,16
+20000250: 8082 ret
+
+20000252 <puts>:
+20000252: 1141 addi sp,sp,-16
+20000254: c422 sw s0,8(sp)
+20000256: c606 sw ra,12(sp)
+20000258: 842a mv s0,a0
+2000025a: 00054503 lbu a0,0(a0)
+2000025e: c511 beqz a0,2000026a <puts+0x18>
+20000260: 0405 addi s0,s0,1
+20000262: 374d jal 20000204 <putc>
+20000264: 00044503 lbu a0,0(s0)
+20000268: fd65 bnez a0,20000260 <puts+0xe>
+2000026a: 40b2 lw ra,12(sp)
+2000026c: 4422 lw s0,8(sp)
+2000026e: 4501 li a0,0
+20000270: 0141 addi sp,sp,16
+20000272: 8082 ret
+
+20000274 <gets>:
+20000274: 1141 addi sp,sp,-16
+20000276: c422 sw s0,8(sp)
+20000278: c226 sw s1,4(sp)
+2000027a: c04a sw s2,0(sp)
+2000027c: c606 sw ra,12(sp)
+2000027e: 4929 li s2,10
+20000280: 842a mv s0,a0
+20000282: 4481 li s1,0
+20000284: 3775 jal 20000230 <getc>
+20000286: 01250c63 beq a0,s2,2000029e <gets+0x2a>
+2000028a: 00a40023 sb a0,0(s0)
+2000028e: 00148793 addi a5,s1,1
+20000292: 0405 addi s0,s0,1
+20000294: c519 beqz a0,200002a2 <gets+0x2e>
+20000296: 84be mv s1,a5
+20000298: 3f61 jal 20000230 <getc>
+2000029a: ff2518e3 bne a0,s2,2000028a <gets+0x16>
+2000029e: 00040023 sb zero,0(s0)
+200002a2: 40b2 lw ra,12(sp)
+200002a4: 4422 lw s0,8(sp)
+200002a6: 4902 lw s2,0(sp)
+200002a8: 8526 mv a0,s1
+200002aa: 4492 lw s1,4(sp)
+200002ac: 0141 addi sp,sp,16
+200002ae: 8082 ret
+
+200002b0 <putxval>:
+200002b0: 1101 addi sp,sp,-32
+200002b2: ce06 sw ra,28(sp)
+200002b4: cc22 sw s0,24(sp)
+200002b6: 00010623 sb zero,12(sp)
+200002ba: ed05 bnez a0,200002f2 <putxval+0x42>
+200002bc: e191 bnez a1,200002c0 <putxval+0x10>
+200002be: 4585 li a1,1
+200002c0: 00b10793 addi a5,sp,11
+200002c4: 03000713 li a4,48
+200002c8: c591 beqz a1,200002d4 <putxval+0x24>
+200002ca: 00e78023 sb a4,0(a5)
+200002ce: 15fd addi a1,a1,-1
+200002d0: 17fd addi a5,a5,-1
+200002d2: fde5 bnez a1,200002ca <putxval+0x1a>
+200002d4: 0017c503 lbu a0,1(a5)
+200002d8: 00178413 addi s0,a5,1
+200002dc: c511 beqz a0,200002e8 <putxval+0x38>
+200002de: 0405 addi s0,s0,1
+200002e0: 3715 jal 20000204 <putc>
+200002e2: 00044503 lbu a0,0(s0)
+200002e6: fd65 bnez a0,200002de <putxval+0x2e>
+200002e8: 40f2 lw ra,28(sp)
+200002ea: 4462 lw s0,24(sp)
+200002ec: 4501 li a0,0
+200002ee: 6105 addi sp,sp,32
+200002f0: 8082 ret
+200002f2: 872a mv a4,a0
+200002f4: 00f77793 andi a5,a4,15
+200002f8: 00001817 auipc a6,0x1
+200002fc: cfc80813 addi a6,a6,-772 # 20000ff4 <uart_ctrl_addr+0x22c>
+20000300: 97c2 add a5,a5,a6
+20000302: 0007c503 lbu a0,0(a5)
+20000306: 00b10413 addi s0,sp,11
+2000030a: fff40793 addi a5,s0,-1
+2000030e: 00a780a3 sb a0,1(a5)
+20000312: 8311 srli a4,a4,0x4
+20000314: cd99 beqz a1,20000332 <putxval+0x82>
+20000316: 15fd addi a1,a1,-1
+20000318: d755 beqz a4,200002c4 <putxval+0x14>
+2000031a: 843e mv s0,a5
+2000031c: 00f77793 andi a5,a4,15
+20000320: 97c2 add a5,a5,a6
+20000322: 0007c503 lbu a0,0(a5)
+20000326: 8311 srli a4,a4,0x4
+20000328: fff40793 addi a5,s0,-1
+2000032c: 00a780a3 sb a0,1(a5)
+20000330: f1fd bnez a1,20000316 <putxval+0x66>
+20000332: 00f77693 andi a3,a4,15
+20000336: 96c2 add a3,a3,a6
+20000338: fff78613 addi a2,a5,-1
+2000033c: d345 beqz a4,200002dc <putxval+0x2c>
+2000033e: 0006c503 lbu a0,0(a3)
+20000342: 8311 srli a4,a4,0x4
+20000344: 843e mv s0,a5
+20000346: 00a78023 sb a0,0(a5)
+2000034a: 00f77693 andi a3,a4,15
+2000034e: 87b2 mv a5,a2
+20000350: 96c2 add a3,a3,a6
+20000352: fff78613 addi a2,a5,-1
+20000356: d359 beqz a4,200002dc <putxval+0x2c>
+20000358: b7dd j 2000033e <putxval+0x8e>
+
+2000035a <serial_init>:
+2000035a: 00251793 slli a5,a0,0x2
+2000035e: 00001517 auipc a0,0x1
+20000362: a6a50513 addi a0,a0,-1430 # 20000dc8 <uart_ctrl_addr>
+20000366: 953e add a0,a0,a5
+20000368: 4118 lw a4,0(a0)
+2000036a: 4785 li a5,1
+2000036c: c71c sw a5,8(a4)
+2000036e: c75c sw a5,12(a4)
+20000370: 00f58a63 beq a1,a5,20000384 <serial_init+0x2a>
+20000374: 36300793 li a5,867
+20000378: cf1c sw a5,24(a4)
+2000037a: 435c lw a5,4(a4)
+2000037c: fe07dfe3 bgez a5,2000037a <serial_init+0x20>
+20000380: 4501 li a0,0
+20000382: 8082 ret
+20000384: 47bd li a5,15
+20000386: cf1c sw a5,24(a4)
+20000388: bfcd j 2000037a <serial_init+0x20>
+
+2000038a <serial_is_send_enable>:
+2000038a: 00251793 slli a5,a0,0x2
+2000038e: 00001517 auipc a0,0x1
+20000392: a3a50513 addi a0,a0,-1478 # 20000dc8 <uart_ctrl_addr>
+20000396: 953e add a0,a0,a5
+20000398: 411c lw a5,0(a0)
+2000039a: 4388 lw a0,0(a5)
+2000039c: fff54513 not a0,a0
+200003a0: 817d srli a0,a0,0x1f
+200003a2: 8082 ret
+
+200003a4 <serial_send_byte>:
+200003a4: 00251793 slli a5,a0,0x2
+200003a8: 00001517 auipc a0,0x1
+200003ac: a2050513 addi a0,a0,-1504 # 20000dc8 <uart_ctrl_addr>
+200003b0: 953e add a0,a0,a5
+200003b2: 4118 lw a4,0(a0)
+200003b4: 431c lw a5,0(a4)
+200003b6: fe07cfe3 bltz a5,200003b4 <serial_send_byte+0x10>
+200003ba: c30c sw a1,0(a4)
+200003bc: 4501 li a0,0
+200003be: 8082 ret
+
+200003c0 <serial_is_recv_enable>:
+200003c0: 00251793 slli a5,a0,0x2
+200003c4: 00001517 auipc a0,0x1
+200003c8: a0450513 addi a0,a0,-1532 # 20000dc8 <uart_ctrl_addr>
+200003cc: 953e add a0,a0,a5
+200003ce: 411c lw a5,0(a0)
+200003d0: 43dc lw a5,4(a5)
+200003d2: fff7c513 not a0,a5
+200003d6: 00f58023 sb a5,0(a1)
+200003da: 817d srli a0,a0,0x1f
+200003dc: 8082 ret
+
+200003de <serial_recv_byte>:
+200003de: 00251793 slli a5,a0,0x2
+200003e2: 00001517 auipc a0,0x1
+200003e6: 9e650513 addi a0,a0,-1562 # 20000dc8 <uart_ctrl_addr>
+200003ea: 953e add a0,a0,a5
+200003ec: 411c lw a5,0(a0)
+200003ee: 43c8 lw a0,4(a5)
+200003f0: fe054fe3 bltz a0,200003ee <serial_recv_byte+0x10>
+200003f4: 0ff57513 andi a0,a0,255
+200003f8: 8082 ret
+
+200003fa <number>:
+200003fa: 711d addi sp,sp,-96
+200003fc: cea2 sw s0,92(sp)
+200003fe: cca6 sw s1,88(sp)
+20000400: 0407f813 andi a6,a5,64
+20000404: 00001e17 auipc t3,0x1
+20000408: c2ce0e13 addi t3,t3,-980 # 20001030 <uart_ctrl_addr+0x268>
+2000040c: 00081663 bnez a6,20000418 <number+0x1e>
+20000410: 00001e17 auipc t3,0x1
+20000414: bf8e0e13 addi t3,t3,-1032 # 20001008 <uart_ctrl_addr+0x240>
+20000418: 0107f413 andi s0,a5,16
+2000041c: 14040263 beqz s0,20000560 <number+0x166>
+20000420: 9bf9 andi a5,a5,-2
+20000422: 84a2 mv s1,s0
+20000424: 0027f813 andi a6,a5,2
+20000428: 02000f93 li t6,32
+2000042c: 0207f393 andi t2,a5,32
+20000430: 14080663 beqz a6,2000057c <number+0x182>
+20000434: 1405c663 bltz a1,20000580 <number+0x186>
+20000438: 0047f813 andi a6,a5,4
+2000043c: 16081c63 bnez a6,200005b4 <number+0x1ba>
+20000440: 8ba1 andi a5,a5,8
+20000442: 4281 li t0,0
+20000444: c781 beqz a5,2000044c <number+0x52>
+20000446: 16fd addi a3,a3,-1
+20000448: 02000293 li t0,32
+2000044c: 00038a63 beqz t2,20000460 <number+0x66>
+20000450: 47c1 li a5,16
+20000452: 16f60f63 beq a2,a5,200005d0 <number+0x1d6>
+20000456: ff860793 addi a5,a2,-8
+2000045a: 0017b793 seqz a5,a5
+2000045e: 8e9d sub a3,a3,a5
+20000460: 12059763 bnez a1,2000058e <number+0x194>
+20000464: 03000793 li a5,48
+20000468: 00f10623 sb a5,12(sp)
+2000046c: 4301 li t1,0
+2000046e: 03000813 li a6,48
+20000472: 4885 li a7,1
+20000474: 007c addi a5,sp,12
+20000476: 8ec6 mv t4,a7
+20000478: 00e8d363 bge a7,a4,2000047e <number+0x84>
+2000047c: 8eba mv t4,a4
+2000047e: 41d68e33 sub t3,a3,t4
+20000482: fffe0593 addi a1,t3,-1
+20000486: ec91 bnez s1,200004a2 <number+0xa8>
+20000488: 01c506b3 add a3,a0,t3
+2000048c: 02000713 li a4,32
+20000490: 15c05a63 blez t3,200005e4 <number+0x1ea>
+20000494: 0505 addi a0,a0,1
+20000496: fee50fa3 sb a4,-1(a0)
+2000049a: fed51de3 bne a0,a3,20000494 <number+0x9a>
+2000049e: 55f9 li a1,-2
+200004a0: 5e7d li t3,-1
+200004a2: 00028563 beqz t0,200004ac <number+0xb2>
+200004a6: 00550023 sb t0,0(a0)
+200004aa: 0505 addi a0,a0,1
+200004ac: 00038863 beqz t2,200004bc <number+0xc2>
+200004b0: 4721 li a4,8
+200004b2: 12e60163 beq a2,a4,200005d4 <number+0x1da>
+200004b6: 4741 li a4,16
+200004b8: 10e60263 beq a2,a4,200005bc <number+0x1c2>
+200004bc: e80d bnez s0,200004ee <number+0xf4>
+200004be: 862a mv a2,a0
+200004c0: 4705 li a4,1
+200004c2: 13c05663 blez t3,200005ee <number+0x1f4>
+200004c6: 0605 addi a2,a2,1
+200004c8: 40c706b3 sub a3,a4,a2
+200004cc: 96ae add a3,a3,a1
+200004ce: 96aa add a3,a3,a0
+200004d0: fff60fa3 sb t6,-1(a2)
+200004d4: fed049e3 bgtz a3,200004c6 <number+0xcc>
+200004d8: fff5c713 not a4,a1
+200004dc: 877d srai a4,a4,0x1f
+200004de: 8f6d and a4,a4,a1
+200004e0: 15fd addi a1,a1,-1
+200004e2: 40e58e33 sub t3,a1,a4
+200004e6: 0705 addi a4,a4,1
+200004e8: 953a add a0,a0,a4
+200004ea: fffe0593 addi a1,t3,-1
+200004ee: 411e8733 sub a4,t4,a7
+200004f2: 972a add a4,a4,a0
+200004f4: 03000693 li a3,48
+200004f8: 0fd8d463 bge a7,t4,200005e0 <number+0x1e6>
+200004fc: 0505 addi a0,a0,1
+200004fe: fed50fa3 sb a3,-1(a0)
+20000502: fea71de3 bne a4,a0,200004fc <number+0x102>
+20000506: 00678633 add a2,a5,t1
+2000050a: 86ba mv a3,a4
+2000050c: 4505 li a0,1
+2000050e: a019 j 20000514 <number+0x11a>
+20000510: 00064803 lbu a6,0(a2)
+20000514: 0685 addi a3,a3,1
+20000516: 40d507b3 sub a5,a0,a3
+2000051a: 979a add a5,a5,t1
+2000051c: 97ba add a5,a5,a4
+2000051e: ff068fa3 sb a6,-1(a3)
+20000522: 167d addi a2,a2,-1
+20000524: fef046e3 bgtz a5,20000510 <number+0x116>
+20000528: 00130513 addi a0,t1,1
+2000052c: 953a add a0,a0,a4
+2000052e: 03c05563 blez t3,20000558 <number+0x15e>
+20000532: 872a mv a4,a0
+20000534: 02000613 li a2,32
+20000538: 4685 li a3,1
+2000053a: 0705 addi a4,a4,1
+2000053c: 40e687b3 sub a5,a3,a4
+20000540: 97ae add a5,a5,a1
+20000542: 97aa add a5,a5,a0
+20000544: fec70fa3 sb a2,-1(a4)
+20000548: fef049e3 bgtz a5,2000053a <number+0x140>
+2000054c: fff5c793 not a5,a1
+20000550: 87fd srai a5,a5,0x1f
+20000552: 8dfd and a1,a1,a5
+20000554: 0585 addi a1,a1,1
+20000556: 952e add a0,a0,a1
+20000558: 4476 lw s0,92(sp)
+2000055a: 44e6 lw s1,88(sp)
+2000055c: 6125 addi sp,sp,96
+2000055e: 8082 ret
+20000560: 0017f813 andi a6,a5,1
+20000564: 0117f493 andi s1,a5,17
+20000568: 03000f93 li t6,48
+2000056c: ea080ce3 beqz a6,20000424 <number+0x2a>
+20000570: 0027f813 andi a6,a5,2
+20000574: 0207f393 andi t2,a5,32
+20000578: ea081ee3 bnez a6,20000434 <number+0x3a>
+2000057c: 4281 li t0,0
+2000057e: b5f9 j 2000044c <number+0x52>
+20000580: 40b005b3 neg a1,a1
+20000584: 16fd addi a3,a3,-1
+20000586: 02d00293 li t0,45
+2000058a: ec0393e3 bnez t2,20000450 <number+0x56>
+2000058e: 4881 li a7,0
+20000590: 007c addi a5,sp,12
+20000592: 02c5f833 remu a6,a1,a2
+20000596: 8346 mv t1,a7
+20000598: 0885 addi a7,a7,1
+2000059a: 01178f33 add t5,a5,a7
+2000059e: 8eae mv t4,a1
+200005a0: 9872 add a6,a6,t3
+200005a2: 00084803 lbu a6,0(a6)
+200005a6: 02c5d5b3 divu a1,a1,a2
+200005aa: ff0f0fa3 sb a6,-1(t5)
+200005ae: fecef2e3 bgeu t4,a2,20000592 <number+0x198>
+200005b2: b5d1 j 20000476 <number+0x7c>
+200005b4: 16fd addi a3,a3,-1
+200005b6: 02b00293 li t0,43
+200005ba: bd49 j 2000044c <number+0x52>
+200005bc: 03000713 li a4,48
+200005c0: 00e50023 sb a4,0(a0)
+200005c4: 07800713 li a4,120
+200005c8: 00e500a3 sb a4,1(a0)
+200005cc: 0509 addi a0,a0,2
+200005ce: b5fd j 200004bc <number+0xc2>
+200005d0: 16f9 addi a3,a3,-2
+200005d2: b579 j 20000460 <number+0x66>
+200005d4: 03000713 li a4,48
+200005d8: 00e50023 sb a4,0(a0)
+200005dc: 0505 addi a0,a0,1
+200005de: bdf9 j 200004bc <number+0xc2>
+200005e0: 872a mv a4,a0
+200005e2: b715 j 20000506 <number+0x10c>
+200005e4: ffee0713 addi a4,t3,-2
+200005e8: 8e2e mv t3,a1
+200005ea: 85ba mv a1,a4
+200005ec: bd5d j 200004a2 <number+0xa8>
+200005ee: 8e2e mv t3,a1
+200005f0: 15fd addi a1,a1,-1
+200005f2: bdf5 j 200004ee <number+0xf4>
+
+200005f4 <uart_send_char>:
+200005f4: 85aa mv a1,a0
+200005f6: 4501 li a0,0
+200005f8: b375 j 200003a4 <serial_send_byte>
+
+200005fa <ee_printf>:
+200005fa: 7149 addi sp,sp,-368
+200005fc: 13612823 sw s6,304(sp)
+20000600: 14112623 sw ra,332(sp)
+20000604: 14812423 sw s0,328(sp)
+20000608: 14912223 sw s1,324(sp)
+2000060c: 15212023 sw s2,320(sp)
+20000610: 13312e23 sw s3,316(sp)
+20000614: 13412c23 sw s4,312(sp)
+20000618: 13512a23 sw s5,308(sp)
+2000061c: 13712623 sw s7,300(sp)
+20000620: 13812423 sw s8,296(sp)
+20000624: 13912223 sw s9,292(sp)
+20000628: 13a12023 sw s10,288(sp)
+2000062c: 14b12a23 sw a1,340(sp)
+20000630: 14c12c23 sw a2,344(sp)
+20000634: 14d12e23 sw a3,348(sp)
+20000638: 16e12023 sw a4,352(sp)
+2000063c: 16f12223 sw a5,356(sp)
+20000640: 17012423 sw a6,360(sp)
+20000644: 17112623 sw a7,364(sp)
+20000648: 00054783 lbu a5,0(a0)
+2000064c: 15410b13 addi s6,sp,340
+20000650: c25a sw s6,4(sp)
+20000652: 5c078963 beqz a5,20000c24 <ee_printf+0x62a>
+20000656: 02010993 addi s3,sp,32
+2000065a: 832a mv t1,a0
+2000065c: 00000a97 auipc s5,0x0
+20000660: 784a8a93 addi s5,s5,1924 # 20000de0 <uart_ctrl_addr+0x18>
+20000664: 854e mv a0,s3
+20000666: 02e00b93 li s7,46
+2000066a: 00000a17 auipc s4,0x0
+2000066e: 7baa0a13 addi s4,s4,1978 # 20000e24 <uart_ctrl_addr+0x5c>
+20000672: 00001497 auipc s1,0x1
+20000676: 99648493 addi s1,s1,-1642 # 20001008 <uart_ctrl_addr+0x240>
+2000067a: 00001417 auipc s0,0x1
+2000067e: 88a40413 addi s0,s0,-1910 # 20000f04 <uart_ctrl_addr+0x13c>
+20000682: 02500713 li a4,37
+20000686: 06e78463 beq a5,a4,200006ee <ee_printf+0xf4>
+2000068a: 00f50023 sb a5,0(a0)
+2000068e: 00134783 lbu a5,1(t1)
+20000692: 0505 addi a0,a0,1
+20000694: 0305 addi t1,t1,1
+20000696: f7f5 bnez a5,20000682 <ee_printf+0x88>
+20000698: 00050023 sb zero,0(a0)
+2000069c: 02014583 lbu a1,32(sp)
+200006a0: 12058463 beqz a1,200007c8 <ee_printf+0x1ce>
+200006a4: 4405 li s0,1
+200006a6: 41340433 sub s0,s0,s3
+200006aa: 4501 li a0,0
+200006ac: 39e5 jal 200003a4 <serial_send_byte>
+200006ae: 0019c583 lbu a1,1(s3)
+200006b2: 00898533 add a0,s3,s0
+200006b6: 0985 addi s3,s3,1
+200006b8: f9ed bnez a1,200006aa <ee_printf+0xb0>
+200006ba: 14c12083 lw ra,332(sp)
+200006be: 14812403 lw s0,328(sp)
+200006c2: 14412483 lw s1,324(sp)
+200006c6: 14012903 lw s2,320(sp)
+200006ca: 13c12983 lw s3,316(sp)
+200006ce: 13812a03 lw s4,312(sp)
+200006d2: 13412a83 lw s5,308(sp)
+200006d6: 13012b03 lw s6,304(sp)
+200006da: 12c12b83 lw s7,300(sp)
+200006de: 12812c03 lw s8,296(sp)
+200006e2: 12412c83 lw s9,292(sp)
+200006e6: 12012d03 lw s10,288(sp)
+200006ea: 6175 addi sp,sp,368
+200006ec: 8082 ret
+200006ee: 4781 li a5,0
+200006f0: 46c1 li a3,16
+200006f2: 00134583 lbu a1,1(t1)
+200006f6: 00130913 addi s2,t1,1
+200006fa: fe058713 addi a4,a1,-32
+200006fe: 0ff77713 andi a4,a4,255
+20000702: 00e6e763 bltu a3,a4,20000710 <ee_printf+0x116>
+20000706: 070a slli a4,a4,0x2
+20000708: 9756 add a4,a4,s5
+2000070a: 4318 lw a4,0(a4)
+2000070c: 9756 add a4,a4,s5
+2000070e: 8702 jr a4
+20000710: fd058713 addi a4,a1,-48
+20000714: 0ff77713 andi a4,a4,255
+20000718: 46a5 li a3,9
+2000071a: 0ce6fb63 bgeu a3,a4,200007f0 <ee_printf+0x1f6>
+2000071e: 02a00713 li a4,42
+20000722: 56fd li a3,-1
+20000724: 0ee58963 beq a1,a4,20000816 <ee_printf+0x21c>
+20000728: 577d li a4,-1
+2000072a: 0b758163 beq a1,s7,200007cc <ee_printf+0x1d2>
+2000072e: 0df5f613 andi a2,a1,223
+20000732: 04c00813 li a6,76
+20000736: 05060363 beq a2,a6,2000077c <ee_printf+0x182>
+2000073a: fbf58613 addi a2,a1,-65
+2000073e: 0ff67613 andi a2,a2,255
+20000742: 03700813 li a6,55
+20000746: 04c86e63 bltu a6,a2,200007a2 <ee_printf+0x1a8>
+2000074a: 060a slli a2,a2,0x2
+2000074c: 9652 add a2,a2,s4
+2000074e: 4210 lw a2,0(a2)
+20000750: 9652 add a2,a2,s4
+20000752: 8602 jr a2
+20000754: 0017e793 ori a5,a5,1
+20000758: 834a mv t1,s2
+2000075a: bf61 j 200006f2 <ee_printf+0xf8>
+2000075c: 0107e793 ori a5,a5,16
+20000760: 834a mv t1,s2
+20000762: bf41 j 200006f2 <ee_printf+0xf8>
+20000764: 0047e793 ori a5,a5,4
+20000768: 834a mv t1,s2
+2000076a: b761 j 200006f2 <ee_printf+0xf8>
+2000076c: 0207e793 ori a5,a5,32
+20000770: 834a mv t1,s2
+20000772: b741 j 200006f2 <ee_printf+0xf8>
+20000774: 0087e793 ori a5,a5,8
+20000778: 834a mv t1,s2
+2000077a: bfa5 j 200006f2 <ee_printf+0xf8>
+2000077c: 00194803 lbu a6,1(s2)
+20000780: 03700313 li t1,55
+20000784: 00190893 addi a7,s2,1
+20000788: fbf80613 addi a2,a6,-65
+2000078c: 0ff67613 andi a2,a2,255
+20000790: 00c36763 bltu t1,a2,2000079e <ee_printf+0x1a4>
+20000794: 060a slli a2,a2,0x2
+20000796: 9622 add a2,a2,s0
+20000798: 4210 lw a2,0(a2)
+2000079a: 9622 add a2,a2,s0
+2000079c: 8602 jr a2
+2000079e: 85c2 mv a1,a6
+200007a0: 8946 mv s2,a7
+200007a2: 02500713 li a4,37
+200007a6: 00150793 addi a5,a0,1
+200007aa: 42e58963 beq a1,a4,20000bdc <ee_printf+0x5e2>
+200007ae: 00e50023 sb a4,0(a0)
+200007b2: 00094703 lbu a4,0(s2)
+200007b6: 4c071a63 bnez a4,20000c8a <ee_printf+0x690>
+200007ba: 853e mv a0,a5
+200007bc: 00050023 sb zero,0(a0)
+200007c0: 02014583 lbu a1,32(sp)
+200007c4: ee0590e3 bnez a1,200006a4 <ee_printf+0xaa>
+200007c8: 4501 li a0,0
+200007ca: bdc5 j 200006ba <ee_printf+0xc0>
+200007cc: 00194583 lbu a1,1(s2)
+200007d0: 4625 li a2,9
+200007d2: 00190813 addi a6,s2,1
+200007d6: fd058713 addi a4,a1,-48
+200007da: 0ff77713 andi a4,a4,255
+200007de: 3ae67763 bgeu a2,a4,20000b8c <ee_printf+0x592>
+200007e2: 02a00713 li a4,42
+200007e6: 3ce58b63 beq a1,a4,20000bbc <ee_printf+0x5c2>
+200007ea: 8942 mv s2,a6
+200007ec: 4701 li a4,0
+200007ee: b781 j 2000072e <ee_printf+0x134>
+200007f0: 4681 li a3,0
+200007f2: 4625 li a2,9
+200007f4: 00269713 slli a4,a3,0x2
+200007f8: 96ba add a3,a3,a4
+200007fa: 0905 addi s2,s2,1
+200007fc: 0686 slli a3,a3,0x1
+200007fe: 96ae add a3,a3,a1
+20000800: 00094583 lbu a1,0(s2)
+20000804: fd068693 addi a3,a3,-48
+20000808: fd058713 addi a4,a1,-48
+2000080c: 0ff77713 andi a4,a4,255
+20000810: fee672e3 bgeu a2,a4,200007f4 <ee_printf+0x1fa>
+20000814: bf11 j 20000728 <ee_printf+0x12e>
+20000816: 000b2683 lw a3,0(s6)
+2000081a: 00234583 lbu a1,2(t1)
+2000081e: 00230913 addi s2,t1,2
+20000822: 0b11 addi s6,s6,4
+20000824: f006d2e3 bgez a3,20000728 <ee_printf+0x12e>
+20000828: 40d006b3 neg a3,a3
+2000082c: 0107e793 ori a5,a5,16
+20000830: bde5 j 20000728 <ee_printf+0x12e>
+20000832: 004b0813 addi a6,s6,4
+20000836: 4641 li a2,16
+20000838: 000b2583 lw a1,0(s6)
+2000083c: 8b42 mv s6,a6
+2000083e: 3e75 jal 200003fa <number>
+20000840: 00194783 lbu a5,1(s2)
+20000844: 00190313 addi t1,s2,1
+20000848: e2079de3 bnez a5,20000682 <ee_printf+0x88>
+2000084c: b5b1 j 20000698 <ee_printf+0x9e>
+2000084e: 004b0813 addi a6,s6,4
+20000852: 4629 li a2,10
+20000854: b7d5 j 20000838 <ee_printf+0x23e>
+20000856: 8946 mv s2,a7
+20000858: 000b2603 lw a2,0(s6)
+2000085c: 0b11 addi s6,s6,4
+2000085e: 3a060163 beqz a2,20000c00 <ee_printf+0x606>
+20000862: 00064583 lbu a1,0(a2)
+20000866: 3e058b63 beqz a1,20000c5c <ee_printf+0x662>
+2000086a: 3e070963 beqz a4,20000c5c <ee_printf+0x662>
+2000086e: 85b2 mv a1,a2
+20000870: a029 j 2000087a <ee_printf+0x280>
+20000872: 40e58833 sub a6,a1,a4
+20000876: 00c80763 beq a6,a2,20000884 <ee_printf+0x28a>
+2000087a: 0015c803 lbu a6,1(a1)
+2000087e: 0585 addi a1,a1,1
+20000880: fe0819e3 bnez a6,20000872 <ee_printf+0x278>
+20000884: 8bc1 andi a5,a5,16
+20000886: 8d91 sub a1,a1,a2
+20000888: 3a078263 beqz a5,20000c2c <ee_printf+0x632>
+2000088c: 40b05b63 blez a1,20000ca2 <ee_printf+0x6a8>
+20000890: 00b60833 add a6,a2,a1
+20000894: 87aa mv a5,a0
+20000896: 00064703 lbu a4,0(a2)
+2000089a: 0605 addi a2,a2,1
+2000089c: 0785 addi a5,a5,1
+2000089e: fee78fa3 sb a4,-1(a5)
+200008a2: ff061ae3 bne a2,a6,20000896 <ee_printf+0x29c>
+200008a6: 00b50733 add a4,a0,a1
+200008aa: 40b68533 sub a0,a3,a1
+200008ae: 00190313 addi t1,s2,1
+200008b2: 953a add a0,a0,a4
+200008b4: 02000793 li a5,32
+200008b8: 3cd5d163 bge a1,a3,20000c7a <ee_printf+0x680>
+200008bc: 0705 addi a4,a4,1
+200008be: fef70fa3 sb a5,-1(a4)
+200008c2: fea71de3 bne a4,a0,200008bc <ee_printf+0x2c2>
+200008c6: 00194783 lbu a5,1(s2)
+200008ca: da079ce3 bnez a5,20000682 <ee_printf+0x88>
+200008ce: b3e9 j 20000698 <ee_printf+0x9e>
+200008d0: 8946 mv s2,a7
+200008d2: 567d li a2,-1
+200008d4: 32c68263 beq a3,a2,20000bf8 <ee_printf+0x5fe>
+200008d8: 000b2583 lw a1,0(s6)
+200008dc: 4641 li a2,16
+200008de: 0b11 addi s6,s6,4
+200008e0: 3e29 jal 200003fa <number>
+200008e2: 00194783 lbu a5,1(s2)
+200008e6: 00190313 addi t1,s2,1
+200008ea: d8079ce3 bnez a5,20000682 <ee_printf+0x88>
+200008ee: b36d j 20000698 <ee_printf+0x9e>
+200008f0: 004b0813 addi a6,s6,4
+200008f4: 4621 li a2,8
+200008f6: b789 j 20000838 <ee_printf+0x23e>
+200008f8: 0027e793 ori a5,a5,2
+200008fc: 004b0813 addi a6,s6,4
+20000900: 4629 li a2,10
+20000902: bf1d j 20000838 <ee_printf+0x23e>
+20000904: 8946 mv s2,a7
+20000906: 8bc1 andi a5,a5,16
+20000908: 16fd addi a3,a3,-1
+2000090a: 30078063 beqz a5,20000c0a <ee_printf+0x610>
+2000090e: 000b2603 lw a2,0(s6)
+20000912: 00150713 addi a4,a0,1
+20000916: 00168793 addi a5,a3,1
+2000091a: 00c50023 sb a2,0(a0)
+2000091e: 0b11 addi s6,s6,4
+20000920: 953e add a0,a0,a5
+20000922: 00190313 addi t1,s2,1
+20000926: 87ba mv a5,a4
+20000928: 02000613 li a2,32
+2000092c: 34d05763 blez a3,20000c7a <ee_printf+0x680>
+20000930: 0785 addi a5,a5,1
+20000932: fec78fa3 sb a2,-1(a5)
+20000936: fea79de3 bne a5,a0,20000930 <ee_printf+0x336>
+2000093a: 00194783 lbu a5,1(s2)
+2000093e: 00d70533 add a0,a4,a3
+20000942: d40790e3 bnez a5,20000682 <ee_printf+0x88>
+20000946: bb89 j 20000698 <ee_printf+0x9e>
+20000948: 0407e793 ori a5,a5,64
+2000094c: 004b0813 addi a6,s6,4
+20000950: 4641 li a2,16
+20000952: b5dd j 20000838 <ee_printf+0x23e>
+20000954: 000b2703 lw a4,0(s6)
+20000958: 0407e793 ori a5,a5,64
+2000095c: 0b11 addi s6,s6,4
+2000095e: 00074583 lbu a1,0(a4)
+20000962: 4801 li a6,0
+20000964: 00470893 addi a7,a4,4
+20000968: 06300e93 li t4,99
+2000096c: 4fa5 li t6,9
+2000096e: 4329 li t1,10
+20000970: 06400f13 li t5,100
+20000974: 03000e13 li t3,48
+20000978: 00180613 addi a2,a6,1
+2000097c: e19d bnez a1,200009a2 <ee_printf+0x3a8>
+2000097e: 120c addi a1,sp,288
+20000980: 982e add a6,a6,a1
+20000982: efc80423 sb t3,-280(a6)
+20000986: 0705 addi a4,a4,1
+20000988: 07170663 beq a4,a7,200009f4 <ee_printf+0x3fa>
+2000098c: 120c addi a1,sp,288
+2000098e: 95b2 add a1,a1,a2
+20000990: ef758423 sb s7,-280(a1)
+20000994: 00074583 lbu a1,0(a4)
+20000998: 00160813 addi a6,a2,1
+2000099c: 00180613 addi a2,a6,1
+200009a0: ddf9 beqz a1,2000097e <ee_printf+0x384>
+200009a2: 1cbed063 bge t4,a1,20000b62 <ee_printf+0x568>
+200009a6: 03e5ec33 rem s8,a1,t5
+200009aa: 12010293 addi t0,sp,288
+200009ae: 01028d33 add s10,t0,a6
+200009b2: 00c28cb3 add s9,t0,a2
+200009b6: 00280393 addi t2,a6,2
+200009ba: 00380613 addi a2,a6,3
+200009be: 03e5c5b3 div a1,a1,t5
+200009c2: 026c4833 div a6,s8,t1
+200009c6: 00b482b3 add t0,s1,a1
+200009ca: 0002c583 lbu a1,0(t0)
+200009ce: eebd0423 sb a1,-280(s10)
+200009d2: 026c65b3 rem a1,s8,t1
+200009d6: 9826 add a6,a6,s1
+200009d8: 00084803 lbu a6,0(a6)
+200009dc: ef0c8423 sb a6,-280(s9)
+200009e0: 95a6 add a1,a1,s1
+200009e2: 0005c803 lbu a6,0(a1)
+200009e6: 120c addi a1,sp,288
+200009e8: 959e add a1,a1,t2
+200009ea: ef058423 sb a6,-280(a1)
+200009ee: 0705 addi a4,a4,1
+200009f0: f9171ee3 bne a4,a7,2000098c <ee_printf+0x392>
+200009f4: 8bc1 andi a5,a5,16
+200009f6: fff68813 addi a6,a3,-1
+200009fa: e395 bnez a5,20000a1e <ee_printf+0x424>
+200009fc: 40c687b3 sub a5,a3,a2
+20000a00: 97aa add a5,a5,a0
+20000a02: 02000713 li a4,32
+20000a06: 28d65463 bge a2,a3,20000c8e <ee_printf+0x694>
+20000a0a: 0505 addi a0,a0,1
+20000a0c: fee50fa3 sb a4,-1(a0)
+20000a10: fea79de3 bne a5,a0,20000a0a <ee_printf+0x410>
+20000a14: 40d606b3 sub a3,a2,a3
+20000a18: 96c2 add a3,a3,a6
+20000a1a: fff68813 addi a6,a3,-1
+20000a1e: 003c addi a5,sp,8
+20000a20: 00c505b3 add a1,a0,a2
+20000a24: 0007c703 lbu a4,0(a5)
+20000a28: 0505 addi a0,a0,1
+20000a2a: 0785 addi a5,a5,1
+20000a2c: fee50fa3 sb a4,-1(a0)
+20000a30: feb51ae3 bne a0,a1,20000a24 <ee_printf+0x42a>
+20000a34: e0d656e3 bge a2,a3,20000840 <ee_printf+0x246>
+20000a38: 872e mv a4,a1
+20000a3a: 02000513 li a0,32
+20000a3e: 4685 li a3,1
+20000a40: 0705 addi a4,a4,1
+20000a42: 40e687b3 sub a5,a3,a4
+20000a46: 97c2 add a5,a5,a6
+20000a48: 97ae add a5,a5,a1
+20000a4a: fea70fa3 sb a0,-1(a4)
+20000a4e: fef649e3 blt a2,a5,20000a40 <ee_printf+0x446>
+20000a52: 4505 li a0,1
+20000a54: 16c85f63 bge a6,a2,20000bd2 <ee_printf+0x5d8>
+20000a58: 952e add a0,a0,a1
+20000a5a: b3dd j 20000840 <ee_printf+0x246>
+20000a5c: 0027e793 ori a5,a5,2
+20000a60: 4629 li a2,10
+20000a62: 06c00313 li t1,108
+20000a66: 004b0813 addi a6,s6,4
+20000a6a: 20659e63 bne a1,t1,20000c86 <ee_printf+0x68c>
+20000a6e: 000b2583 lw a1,0(s6)
+20000a72: 8946 mv s2,a7
+20000a74: 8b42 mv s6,a6
+20000a76: b3e1 j 2000083e <ee_printf+0x244>
+20000a78: 4621 li a2,8
+20000a7a: b7e5 j 20000a62 <ee_printf+0x468>
+20000a7c: 0407e793 ori a5,a5,64
+20000a80: 4641 li a2,16
+20000a82: b7c5 j 20000a62 <ee_printf+0x468>
+20000a84: 0407e793 ori a5,a5,64
+20000a88: 06c00613 li a2,108
+20000a8c: 000b2703 lw a4,0(s6)
+20000a90: 0b11 addi s6,s6,4
+20000a92: 1ac59f63 bne a1,a2,20000c50 <ee_printf+0x656>
+20000a96: 0407f613 andi a2,a5,64
+20000a9a: 88a6 mv a7,s1
+20000a9c: c609 beqz a2,20000aa6 <ee_printf+0x4ac>
+20000a9e: 00000897 auipc a7,0x0
+20000aa2: 59288893 addi a7,a7,1426 # 20001030 <uart_ctrl_addr+0x268>
+20000aa6: 00810313 addi t1,sp,8
+20000aaa: 01a10e13 addi t3,sp,26
+20000aae: 859a mv a1,t1
+20000ab0: 03a00e93 li t4,58
+20000ab4: a019 j 20000aba <ee_printf+0x4c0>
+20000ab6: ffd58fa3 sb t4,-1(a1)
+20000aba: 00074603 lbu a2,0(a4)
+20000abe: 058d addi a1,a1,3
+20000ac0: 0705 addi a4,a4,1
+20000ac2: 00465813 srli a6,a2,0x4
+20000ac6: 8a3d andi a2,a2,15
+20000ac8: 9846 add a6,a6,a7
+20000aca: 9646 add a2,a2,a7
+20000acc: 00084803 lbu a6,0(a6)
+20000ad0: 00064603 lbu a2,0(a2)
+20000ad4: ff058ea3 sb a6,-3(a1)
+20000ad8: fec58f23 sb a2,-2(a1)
+20000adc: fdc59de3 bne a1,t3,20000ab6 <ee_printf+0x4bc>
+20000ae0: 8bc1 andi a5,a5,16
+20000ae2: fff68613 addi a2,a3,-1
+20000ae6: e39d bnez a5,20000b0c <ee_printf+0x512>
+20000ae8: fef68593 addi a1,a3,-17
+20000aec: 4845 li a6,17
+20000aee: 00b50733 add a4,a0,a1
+20000af2: 02000793 li a5,32
+20000af6: 1ad85163 bge a6,a3,20000c98 <ee_printf+0x69e>
+20000afa: 0505 addi a0,a0,1
+20000afc: fef50fa3 sb a5,-1(a0)
+20000b00: fee51de3 bne a0,a4,20000afa <ee_printf+0x500>
+20000b04: 40b606b3 sub a3,a2,a1
+20000b08: fff68613 addi a2,a3,-1
+20000b0c: 87aa mv a5,a0
+20000b0e: 01130593 addi a1,t1,17
+20000b12: 00034703 lbu a4,0(t1)
+20000b16: 0305 addi t1,t1,1
+20000b18: 0785 addi a5,a5,1
+20000b1a: fee78fa3 sb a4,-1(a5)
+20000b1e: feb31ae3 bne t1,a1,20000b12 <ee_printf+0x518>
+20000b22: 47c5 li a5,17
+20000b24: 0545 addi a0,a0,17
+20000b26: 02d7d763 bge a5,a3,20000b54 <ee_printf+0x55a>
+20000b2a: 872a mv a4,a0
+20000b2c: 02000813 li a6,32
+20000b30: 4585 li a1,1
+20000b32: 46c5 li a3,17
+20000b34: 0705 addi a4,a4,1
+20000b36: 40e587b3 sub a5,a1,a4
+20000b3a: 97b2 add a5,a5,a2
+20000b3c: 97aa add a5,a5,a0
+20000b3e: ff070fa3 sb a6,-1(a4)
+20000b42: fef6c9e3 blt a3,a5,20000b34 <ee_printf+0x53a>
+20000b46: 4741 li a4,16
+20000b48: 4785 li a5,1
+20000b4a: 00c75463 bge a4,a2,20000b52 <ee_printf+0x558>
+20000b4e: ff060793 addi a5,a2,-16
+20000b52: 953e add a0,a0,a5
+20000b54: 00294783 lbu a5,2(s2)
+20000b58: 00290313 addi t1,s2,2
+20000b5c: b20793e3 bnez a5,20000682 <ee_printf+0x88>
+20000b60: be25 j 20000698 <ee_printf+0x9e>
+20000b62: 83c2 mv t2,a6
+20000b64: e6bfdee3 bge t6,a1,200009e0 <ee_printf+0x3e6>
+20000b68: 0265c2b3 div t0,a1,t1
+20000b6c: 12010393 addi t2,sp,288
+20000b70: 01038c33 add s8,t2,a6
+20000b74: 83b2 mv t2,a2
+20000b76: 00280613 addi a2,a6,2
+20000b7a: 00548833 add a6,s1,t0
+20000b7e: 00084803 lbu a6,0(a6)
+20000b82: 0265e5b3 rem a1,a1,t1
+20000b86: ef0c0423 sb a6,-280(s8)
+20000b8a: bd99 j 200009e0 <ee_printf+0x3e6>
+20000b8c: 4701 li a4,0
+20000b8e: 48a5 li a7,9
+20000b90: 00271613 slli a2,a4,0x2
+20000b94: 9732 add a4,a4,a2
+20000b96: 0805 addi a6,a6,1
+20000b98: 0706 slli a4,a4,0x1
+20000b9a: 972e add a4,a4,a1
+20000b9c: 00084583 lbu a1,0(a6)
+20000ba0: fd070713 addi a4,a4,-48
+20000ba4: fd058613 addi a2,a1,-48
+20000ba8: 0ff67613 andi a2,a2,255
+20000bac: fec8f2e3 bgeu a7,a2,20000b90 <ee_printf+0x596>
+20000bb0: 8942 mv s2,a6
+20000bb2: beb5 j 2000072e <ee_printf+0x134>
+20000bb4: 000b2703 lw a4,0(s6)
+20000bb8: 0b11 addi s6,s6,4
+20000bba: b355 j 2000095e <ee_printf+0x364>
+20000bbc: 000b2703 lw a4,0(s6)
+20000bc0: 00294583 lbu a1,2(s2)
+20000bc4: 0b11 addi s6,s6,4
+20000bc6: fff74613 not a2,a4
+20000bca: 867d srai a2,a2,0x1f
+20000bcc: 8f71 and a4,a4,a2
+20000bce: 0909 addi s2,s2,2
+20000bd0: beb9 j 2000072e <ee_printf+0x134>
+20000bd2: 8e91 sub a3,a3,a2
+20000bd4: 01068533 add a0,a3,a6
+20000bd8: 952e add a0,a0,a1
+20000bda: b19d j 20000840 <ee_printf+0x246>
+20000bdc: 00094703 lbu a4,0(s2)
+20000be0: 86be mv a3,a5
+20000be2: 87aa mv a5,a0
+20000be4: 8536 mv a0,a3
+20000be6: 00e78023 sb a4,0(a5)
+20000bea: 00194783 lbu a5,1(s2)
+20000bee: 00190313 addi t1,s2,1
+20000bf2: a80798e3 bnez a5,20000682 <ee_printf+0x88>
+20000bf6: b44d j 20000698 <ee_printf+0x9e>
+20000bf8: 0017e793 ori a5,a5,1
+20000bfc: 46a1 li a3,8
+20000bfe: b9e9 j 200008d8 <ee_printf+0x2de>
+20000c00: 00000617 auipc a2,0x0
+20000c04: 45860613 addi a2,a2,1112 # 20001058 <uart_ctrl_addr+0x290>
+20000c08: b18d j 2000086a <ee_printf+0x270>
+20000c0a: 00d50733 add a4,a0,a3
+20000c0e: 02000793 li a5,32
+20000c12: 04d05b63 blez a3,20000c68 <ee_printf+0x66e>
+20000c16: 0505 addi a0,a0,1
+20000c18: fef50fa3 sb a5,-1(a0)
+20000c1c: fee51de3 bne a0,a4,20000c16 <ee_printf+0x61c>
+20000c20: 56fd li a3,-1
+20000c22: b1f5 j 2000090e <ee_printf+0x314>
+20000c24: 02010993 addi s3,sp,32
+20000c28: 854e mv a0,s3
+20000c2a: b4bd j 20000698 <ee_printf+0x9e>
+20000c2c: fff68813 addi a6,a3,-1
+20000c30: 08d5d263 bge a1,a3,20000cb4 <ee_printf+0x6ba>
+20000c34: 40b687b3 sub a5,a3,a1
+20000c38: 97aa add a5,a5,a0
+20000c3a: 02000713 li a4,32
+20000c3e: 0505 addi a0,a0,1
+20000c40: fee50fa3 sb a4,-1(a0)
+20000c44: fef51de3 bne a0,a5,20000c3e <ee_printf+0x644>
+20000c48: 40d586b3 sub a3,a1,a3
+20000c4c: 96c2 add a3,a3,a6
+20000c4e: b93d j 2000088c <ee_printf+0x292>
+20000c50: 8946 mv s2,a7
+20000c52: b331 j 2000095e <ee_printf+0x364>
+20000c54: 4641 li a2,16
+20000c56: b531 j 20000a62 <ee_printf+0x468>
+20000c58: 4629 li a2,10
+20000c5a: b521 j 20000a62 <ee_printf+0x468>
+20000c5c: 0107f593 andi a1,a5,16
+20000c60: c1b9 beqz a1,20000ca6 <ee_printf+0x6ac>
+20000c62: 872a mv a4,a0
+20000c64: 4581 li a1,0
+20000c66: b191 j 200008aa <ee_printf+0x2b0>
+20000c68: 000b2783 lw a5,0(s6)
+20000c6c: 00150713 addi a4,a0,1
+20000c70: 0b11 addi s6,s6,4
+20000c72: 00f50023 sb a5,0(a0)
+20000c76: 00190313 addi t1,s2,1
+20000c7a: 00194783 lbu a5,1(s2)
+20000c7e: 853a mv a0,a4
+20000c80: a00791e3 bnez a5,20000682 <ee_printf+0x88>
+20000c84: bc11 j 20000698 <ee_printf+0x9e>
+20000c86: 8946 mv s2,a7
+20000c88: be45 j 20000838 <ee_printf+0x23e>
+20000c8a: 0509 addi a0,a0,2
+20000c8c: bfa9 j 20000be6 <ee_printf+0x5ec>
+20000c8e: ffe68793 addi a5,a3,-2
+20000c92: 86c2 mv a3,a6
+20000c94: 883e mv a6,a5
+20000c96: b361 j 20000a1e <ee_printf+0x424>
+20000c98: ffe68793 addi a5,a3,-2
+20000c9c: 86b2 mv a3,a2
+20000c9e: 863e mv a2,a5
+20000ca0: b5b5 j 20000b0c <ee_printf+0x512>
+20000ca2: 872a mv a4,a0
+20000ca4: b119 j 200008aa <ee_printf+0x2b0>
+20000ca6: fff68813 addi a6,a3,-1
+20000caa: f8d045e3 bgtz a3,20000c34 <ee_printf+0x63a>
+20000cae: 86c2 mv a3,a6
+20000cb0: 872a mv a4,a0
+20000cb2: bee5 j 200008aa <ee_printf+0x2b0>
+20000cb4: 86c2 mv a3,a6
+20000cb6: bed9 j 2000088c <ee_printf+0x292>
+
+Disassembly of section .text.startup:
+
+20000cb8 <main>:
+20000cb8: e7fff517 auipc a0,0xe7fff
+20000cbc: 34850513 addi a0,a0,840 # 8000000 <spi_quad_mode>
+20000cc0: e7fff617 auipc a2,0xe7fff
+20000cc4: 3b460613 addi a2,a2,948 # 8000074 <itim_end>
+20000cc8: 1141 addi sp,sp,-16
+20000cca: 8e09 sub a2,a2,a0
+20000ccc: 00000597 auipc a1,0x0
+20000cd0: 08858593 addi a1,a1,136 # 20000d54 <itim_load_start>
+20000cd4: c606 sw ra,12(sp)
+20000cd6: c3cff0ef jal ra,20000112 <memcpy>
+20000cda: 1ffff517 auipc a0,0x1ffff
+20000cde: 32650513 addi a0,a0,806 # 40000000 <_end>
+20000ce2: 1ffff617 auipc a2,0x1ffff
+20000ce6: 31e60613 addi a2,a2,798 # 40000000 <_end>
+20000cea: 8e09 sub a2,a2,a0
+20000cec: 00000597 auipc a1,0x0
+20000cf0: 37458593 addi a1,a1,884 # 20001060 <erodata>
+20000cf4: c1eff0ef jal ra,20000112 <memcpy>
+20000cf8: 1ffff517 auipc a0,0x1ffff
+20000cfc: 30850513 addi a0,a0,776 # 40000000 <_end>
+20000d00: 1ffff617 auipc a2,0x1ffff
+20000d04: 30060613 addi a2,a2,768 # 40000000 <_end>
+20000d08: 8e09 sub a2,a2,a0
+20000d0a: 4581 li a1,0
+20000d0c: becff0ef jal ra,200000f8 <memset>
+20000d10: 10014537 lui a0,0x10014
+20000d14: e7fff097 auipc ra,0xe7fff
+20000d18: 2ec080e7 jalr 748(ra) # 8000000 <spi_quad_mode>
+20000d1c: 4585 li a1,1
+20000d1e: 4501 li a0,0
+20000d20: e3aff0ef jal ra,2000035a <serial_init>
+20000d24: 00000517 auipc a0,0x0
+20000d28: 2c050513 addi a0,a0,704 # 20000fe4 <uart_ctrl_addr+0x21c>
+20000d2c: d26ff0ef jal ra,20000252 <puts>
+20000d30: 100127b7 lui a5,0x10012
+20000d34: 5f98 lw a4,56(a5)
+20000d36: c00006b7 lui a3,0xc0000
+20000d3a: 40b2 lw ra,12(sp)
+20000d3c: 070a slli a4,a4,0x2
+20000d3e: 8309 srli a4,a4,0x2
+20000d40: df98 sw a4,56(a5)
+20000d42: 4798 lw a4,8(a5)
+20000d44: 4501 li a0,0
+20000d46: 8f55 or a4,a4,a3
+20000d48: c798 sw a4,8(a5)
+20000d4a: 80000737 lui a4,0x80000
+20000d4e: c7d8 sw a4,12(a5)
+20000d50: 0141 addi sp,sp,16
+20000d52: 8082 ret
+
+Disassembly of section .text_itim:
+
+08000000 <spi_quad_mode>:
+ 8000000: 1141 addi sp,sp,-16
+ 8000002: 0ff0000f fence
+ 8000006: 0000100f fence.i
+ 800000a: 4114 lw a3,0(a0)
+ 800000c: 4705 li a4,1
+ 800000e: 4785 li a5,1
+ 8000010: 00e68663 beq a3,a4,800001c <spi_quad_mode+0x1c>
+ 8000014: c11c sw a5,0(a0)
+ 8000016: 4118 lw a4,0(a0)
+ 8000018: fef71ee3 bne a4,a5,8000014 <spi_quad_mode+0x14>
+ 800001c: 5138 lw a4,96(a0)
+ 800001e: 06050793 addi a5,a0,96
+ 8000022: c709 beqz a4,800002c <spi_quad_mode+0x2c>
+ 8000024: 0007a023 sw zero,0(a5) # 10012000 <_stack+0x8010010>
+ 8000028: 4398 lw a4,0(a5)
+ 800002a: ff6d bnez a4,8000024 <spi_quad_mode+0x24>
+ 800002c: 04850693 addi a3,a0,72
+ 8000030: 4298 lw a4,0(a3)
+ 8000032: fe074fe3 bltz a4,8000030 <spi_quad_mode+0x30>
+ 8000036: 03500713 li a4,53
+ 800003a: c538 sw a4,72(a0)
+ 800003c: 000b3737 lui a4,0xb3
+ 8000040: a4770713 addi a4,a4,-1465 # b2a47 <spi_quad_mode-0x7f4d5b9>
+ 8000044: c63a sw a4,12(sp)
+ 8000046: 5174 lw a3,100(a0)
+ 8000048: 4632 lw a2,12(sp)
+ 800004a: 06450713 addi a4,a0,100
+ 800004e: 00d60863 beq a2,a3,800005e <spi_quad_mode+0x5e>
+ 8000052: 46b2 lw a3,12(sp)
+ 8000054: c314 sw a3,0(a4)
+ 8000056: 4310 lw a2,0(a4)
+ 8000058: 46b2 lw a3,12(sp)
+ 800005a: fed61ce3 bne a2,a3,8000052 <spi_quad_mode+0x52>
+ 800005e: 5130 lw a2,96(a0)
+ 8000060: 4685 li a3,1
+ 8000062: 4705 li a4,1
+ 8000064: 00d60663 beq a2,a3,8000070 <spi_quad_mode+0x70>
+ 8000068: c398 sw a4,0(a5)
+ 800006a: 4394 lw a3,0(a5)
+ 800006c: fee69ee3 bne a3,a4,8000068 <spi_quad_mode+0x68>
+ 8000070: 0141 addi sp,sp,16
+ 8000072: 8082 ret
diff --git a/verilog/dv/marmot_test1/spi_flash.mem b/verilog/dv/marmot_test1/spi_flash.mem
deleted file mode 120000
index 3cf3653..0000000
--- a/verilog/dv/marmot_test1/spi_flash.mem
+++ /dev/null
@@ -1 +0,0 @@
-hello_flash.mem
\ No newline at end of file
diff --git a/verilog/dv/marmot_test1/hello_flash.mem b/verilog/dv/marmot_test1/spi_flash.mem
similarity index 92%
rename from verilog/dv/marmot_test1/hello_flash.mem
rename to verilog/dv/marmot_test1/spi_flash.mem
index 1ae2f8e..cf135cf 100644
--- a/verilog/dv/marmot_test1/hello_flash.mem
+++ b/verilog/dv/marmot_test1/spi_flash.mem
@@ -1,9 +1,142 @@
+// /home/shc/Development/RISC-V/chipyard/vlsi/sim/testcase/hello/spi_flash.mem
// spi_flash.srec
@00000000
+93
+00
+00
+00
+13
+01
+00
+00
+93
+01
+00
+00
+13
+02
+00
+00
+@00000010
+93
+02
+00
+00
+13
+03
+00
+00
+93
+03
+00
+00
+13
+04
+00
+00
+@00000020
+93
+04
+00
+00
+13
+05
+00
+00
+93
+05
+00
+00
+13
+06
+00
+00
+@00000030
+93
+06
+00
+00
+13
+07
+00
+00
+93
+07
+00
+00
+13
+08
+00
+00
+@00000040
+93
+08
+00
+00
+13
+09
+00
+00
+93
+09
+00
+00
+13
+0A
+00
+00
+@00000050
+93
+0A
+00
+00
+13
+0B
+00
+00
+93
+0B
+00
+00
+13
+0C
+00
+00
+@00000060
+93
+0C
+00
+00
+13
+0D
+00
+00
+93
+0D
+00
+00
+13
+0E
+00
+00
+@00000070
+93
+0E
+00
+00
+13
+0F
+00
+00
+93
+0F
+00
+00
13
09
80
00
+@00000080
73
10
49
@@ -16,11 +149,11 @@
29
40
F1
-@00000010
63
96
24
03
+@00000090
37
21
00
@@ -33,11 +166,11 @@
00
10
42
-@00000020
B7
04
00
02
+@000000A0
13
09
10
@@ -50,11 +183,11 @@
84
44
00
-@00000030
37
09
00
02
+@000000B0
13
09
09
@@ -67,11 +200,11 @@
00
50
10
-@00000040
73
29
40
34
+@000000C0
13
79
89
@@ -84,11 +217,11 @@
04
00
02
-@00000050
73
29
40
F1
+@000000D0
13
19
29
@@ -101,11 +234,11 @@
20
09
00
-@00000060
03
A9
04
00
+@000000E0
E3
1E
09
@@ -118,11 +251,11 @@
09
00
02
-@00000070
13
09
09
08
+@000000F0
E3
C6
24
@@ -135,11 +268,11 @@
F5
F5
0F
-@00000080
33
07
C5
00
+@00000100
AA
87
63
@@ -152,11 +285,11 @@
8F
B7
FE
-@00000090
E3
1D
F7
FE
+@00000110
82
80
63
@@ -169,11 +302,11 @@
87
03
C7
-@000000A0
05
00
85
07
+@00000120
85
05
A3
@@ -186,11 +319,11 @@
FE
82
80
-@000000B0
63
55
C0
02
+@00000130
2E
96
19
@@ -203,11 +336,11 @@
47
05
00
-@000000C0
03
C7
05
00
+@00000140
05
05
85
@@ -220,11 +353,11 @@
35
F7
00
-@000000D0
33
05
A0
40
+@00000150
09
89
7D
@@ -237,11 +370,11 @@
80
83
47
-@000000E0
05
00
2A
87
+@00000160
01
45
81
@@ -254,11 +387,11 @@
00
83
C7
-@000000F0
07
00
FD
FB
+@00000170
82
80
82
@@ -271,11 +404,11 @@
00
F5
00
-@00000100
83
C7
05
00
+@00000180
99
CB
AA
@@ -288,11 +421,11 @@
05
85
07
-@00000110
23
80
E7
00
+@00000190
03
C7
05
@@ -305,11 +438,11 @@
A0
63
9D
-@00000120
E7
00
83
47
+@000001A0
05
00
03
@@ -322,11 +455,11 @@
05
B3
E6
-@00000130
E7
00
F5
F6
+@000001B0
01
45
82
@@ -339,11 +472,11 @@
05
A0
40
-@00000140
09
89
7D
15
+@000001C0
82
80
AA
@@ -356,11 +489,11 @@
C7
07
00
-@00000150
B3
06
F8
40
+@000001D0
19
EB
03
@@ -373,11 +506,11 @@
95
1D
8D
-@00000160
33
25
A0
00
+@000001E0
33
05
A0
@@ -390,11 +523,11 @@
00
83
C6
-@00000170
05
00
85
07
+@000001F0
85
05
E3
@@ -407,11 +540,11 @@
E6
E6
FE
-@00000180
7D
55
82
80
+@00000200
01
45
82
@@ -424,11 +557,11 @@
C6
A9
47
-@00000190
2A
84
63
08
+@00000210
F5
00
A2
@@ -441,11 +574,11 @@
45
41
01
-@000001A0
61
A2
B5
45
+@00000220
01
45
49
@@ -458,11 +591,11 @@
40
01
45
-@000001B0
41
01
9D
AA
+@00000230
41
11
01
@@ -475,11 +608,11 @@
22
B5
47
-@000001C0
29
44
63
03
+@00000240
F5
00
2A
@@ -492,11 +625,11 @@
40
22
85
-@000001D0
22
44
41
01
+@00000250
82
80
41
@@ -509,11 +642,11 @@
84
03
45
-@000001E0
05
00
11
C5
+@00000260
05
04
4D
@@ -526,11 +659,11 @@
FD
B2
40
-@000001F0
22
44
01
45
+@00000270
41
01
82
@@ -543,11 +676,11 @@
C2
4A
C0
-@00000200
06
C6
29
49
+@00000280
2A
84
81
@@ -560,11 +693,11 @@
01
23
00
-@00000210
A4
00
93
87
+@00000290
14
00
05
@@ -577,11 +710,11 @@
3F
E3
18
-@00000220
25
FF
23
00
+@000002A0
04
00
B2
@@ -594,11 +727,11 @@
85
92
44
-@00000230
41
01
82
80
+@000002B0
01
11
06
@@ -611,11 +744,11 @@
00
05
ED
-@00000240
91
E1
85
45
+@000002C0
93
07
B1
@@ -628,11 +761,11 @@
C5
23
80
-@00000250
E7
00
FD
15
+@000002D0
FD
17
E5
@@ -645,11 +778,11 @@
84
17
00
-@00000260
11
C5
05
04
+@000002E0
15
37
03
@@ -662,11 +795,11 @@
40
62
44
-@00000270
01
45
05
61
+@000002F0
82
80
2A
@@ -679,11 +812,11 @@
18
00
00
-@00000280
13
08
C8
CF
+@00000300
C2
97
03
@@ -696,11 +829,11 @@
00
93
07
-@00000290
F4
FF
A3
80
+@00000310
A7
00
11
@@ -713,11 +846,11 @@
D7
3E
84
-@000002A0
93
77
F7
00
+@00000320
C2
97
03
@@ -730,11 +863,11 @@
07
F4
FF
-@000002B0
A3
80
A7
00
+@00000330
FD
F1
93
@@ -747,11 +880,11 @@
86
F7
FF
-@000002C0
45
D3
03
C5
+@00000340
06
00
11
@@ -764,11 +897,11 @@
00
93
76
-@000002D0
F7
00
B2
87
+@00000350
C2
96
13
@@ -781,11 +914,11 @@
B7
93
17
-@000002E0
25
00
17
15
+@00000360
00
00
13
@@ -798,11 +931,11 @@
41
85
47
-@000002F0
1C
C7
5C
C7
+@00000370
63
8A
F5
@@ -815,11 +948,11 @@
CF
5C
43
-@00000300
E3
DF
07
FE
+@00000380
01
45
82
@@ -832,11 +965,11 @@
BF
93
17
-@00000310
25
00
17
15
+@00000390
00
00
13
@@ -849,11 +982,11 @@
41
88
43
-@00000320
13
45
F5
FF
+@000003A0
7D
81
82
@@ -866,11 +999,11 @@
15
00
00
-@00000330
13
05
05
A2
+@000003B0
3E
95
18
@@ -883,11 +1016,11 @@
FE
0C
C3
-@00000340
01
45
82
80
+@000003C0
93
17
25
@@ -900,11 +1033,11 @@
05
45
A0
-@00000350
3E
95
1C
41
+@000003D0
DC
43
13
@@ -917,11 +1050,11 @@
00
7D
81
-@00000360
82
80
93
17
+@000003E0
25
00
17
@@ -934,11 +1067,11 @@
9E
3E
95
-@00000370
1C
41
C8
43
+@000003F0
E3
4F
05
@@ -951,11 +1084,11 @@
80
1D
71
-@00000380
A2
CE
A6
CC
+@00000400
13
F8
07
@@ -968,11 +1101,11 @@
0E
CE
C2
-@00000390
63
16
08
00
+@00000410
17
1E
00
@@ -985,11 +1118,11 @@
F4
07
01
-@000003A0
63
02
04
14
+@00000420
F9
9B
A2
@@ -1002,11 +1135,11 @@
0F
00
02
-@000003B0
93
F3
07
02
+@00000430
63
06
08
@@ -1019,11 +1152,11 @@
F8
47
00
-@000003C0
63
1C
08
16
+@00000440
A1
8B
81
@@ -1036,11 +1169,11 @@
02
00
02
-@000003D0
63
8A
03
00
+@00000450
C1
47
63
@@ -1053,11 +1186,11 @@
FF
93
B7
-@000003E0
17
00
9D
8E
+@00000460
63
97
05
@@ -1070,11 +1203,11 @@
06
F1
00
-@000003F0
01
43
13
08
+@00000470
00
03
85
@@ -1087,11 +1220,11 @@
D3
E8
00
-@00000400
BA
8E
33
8E
+@00000480
D6
41
93
@@ -1104,11 +1237,11 @@
06
C5
01
-@00000410
13
07
00
02
+@00000490
63
5A
C0
@@ -1121,11 +1254,11 @@
FE
E3
1D
-@00000420
D5
FE
F9
55
+@000004A0
7D
5E
63
@@ -1138,11 +1271,11 @@
00
05
05
-@00000430
63
88
03
00
+@000004B0
21
47
63
@@ -1155,11 +1288,11 @@
02
E6
10
-@00000440
0D
E8
2A
86
+@000004C0
05
47
63
@@ -1172,11 +1305,11 @@
06
C7
40
-@00000450
AE
96
AA
96
+@000004D0
A3
0F
F6
@@ -1189,11 +1322,11 @@
C7
F5
FF
-@00000460
7D
87
6D
8F
+@000004E0
FD
15
33
@@ -1206,11 +1339,11 @@
95
93
05
-@00000470
FE
FF
33
87
+@000004F0
1E
41
2A
@@ -1223,11 +1356,11 @@
D4
D8
0F
-@00000480
05
05
A3
0F
+@00000500
D5
FE
E3
@@ -1240,11 +1373,11 @@
00
BA
86
-@00000490
05
45
19
A0
+@00000510
03
48
06
@@ -1257,11 +1390,11 @@
40
9A
97
-@000004A0
BA
97
A3
8F
+@00000520
06
FF
7D
@@ -1274,11 +1407,11 @@
05
13
00
-@000004B0
3A
95
63
55
+@00000530
C0
03
2A
@@ -1291,11 +1424,11 @@
46
05
07
-@000004C0
B3
87
E6
40
+@00000540
AE
97
AA
@@ -1308,11 +1441,11 @@
49
F0
FE
-@000004D0
93
C7
F5
FF
+@00000550
FD
87
FD
@@ -1325,11 +1458,11 @@
44
E6
44
-@000004E0
25
61
82
80
+@00000560
13
F8
17
@@ -1342,11 +1475,11 @@
0F
00
03
-@000004F0
E3
0C
08
EA
+@00000570
13
F8
27
@@ -1359,11 +1492,11 @@
1E
08
EA
-@00000500
81
42
F9
B5
+@00000580
B3
05
B0
@@ -1376,11 +1509,11 @@
02
E3
93
-@00000510
03
EC
81
48
+@00000590
7C
00
33
@@ -1393,11 +1526,11 @@
08
33
8F
-@00000520
17
01
AE
8E
+@000005A0
72
98
03
@@ -1410,11 +1543,11 @@
02
A3
0F
-@00000530
0F
FF
E3
F2
+@000005B0
CE
FE
D1
@@ -1427,11 +1560,11 @@
02
49
BD
-@00000540
13
07
00
03
+@000005C0
23
00
E5
@@ -1444,11 +1577,11 @@
00
E5
00
-@00000550
09
05
FD
B5
+@000005D0
F9
16
79
@@ -1461,11 +1594,11 @@
00
E5
00
-@00000560
05
05
F9
BD
+@000005E0
2A
87
15
@@ -1478,11 +1611,11 @@
8E
BA
85
-@00000570
5D
BD
2E
8E
+@000005F0
FD
15
F5
@@ -1495,11 +1628,11 @@
B3
49
71
-@00000580
23
28
61
13
+@00000600
23
26
11
@@ -1512,11 +1645,11 @@
22
91
14
-@00000590
23
20
21
15
+@00000610
23
2E
31
@@ -1529,11 +1662,11 @@
2A
51
13
-@000005A0
23
26
71
13
+@00000620
23
24
81
@@ -1546,11 +1679,11 @@
20
A1
13
-@000005B0
23
2A
B1
14
+@00000630
23
2C
C1
@@ -1563,11 +1696,11 @@
20
E1
16
-@000005C0
23
22
F1
16
+@00000640
23
24
01
@@ -1580,11 +1713,11 @@
47
05
00
-@000005D0
13
0B
41
15
+@00000650
5A
C2
63
@@ -1597,11 +1730,11 @@
02
2A
83
-@000005E0
97
0A
00
00
+@00000660
93
8A
4A
@@ -1614,11 +1747,11 @@
02
17
0A
-@000005F0
00
00
13
0A
+@00000670
AA
7B
97
@@ -1631,11 +1764,11 @@
99
17
14
-@00000600
00
00
13
04
+@00000680
A4
88
13
@@ -1648,11 +1781,11 @@
06
23
00
-@00000610
F5
00
83
47
+@00000690
13
00
05
@@ -1665,11 +1798,11 @@
00
05
00
-@00000620
83
45
01
02
+@000006A0
63
84
05
@@ -1682,11 +1815,11 @@
41
01
45
-@00000630
E5
39
83
C5
+@000006B0
19
00
33
@@ -1699,11 +1832,11 @@
F9
83
20
-@00000640
C1
14
03
24
+@000006C0
81
14
83
@@ -1716,11 +1849,11 @@
14
83
29
-@00000650
C1
13
03
2A
+@000006D0
81
13
83
@@ -1733,11 +1866,11 @@
13
83
2B
-@00000660
C1
12
03
2C
+@000006E0
81
12
83
@@ -1750,11 +1883,11 @@
12
75
61
-@00000670
82
80
81
47
+@000006F0
C1
46
83
@@ -1767,11 +1900,11 @@
00
13
87
-@00000680
05
FE
13
77
+@00000700
F7
0F
63
@@ -1784,11 +1917,11 @@
97
18
43
-@00000690
56
97
02
87
+@00000710
13
87
05
@@ -1801,11 +1934,11 @@
46
63
FB
-@000006A0
E6
0C
13
07
+@00000720
A0
02
FD
@@ -1818,11 +1951,11 @@
57
63
81
-@000006B0
75
0B
13
F6
+@00000730
F5
0D
13
@@ -1835,11 +1968,11 @@
05
13
86
-@000006C0
F5
FB
13
76
+@00000740
F6
0F
13
@@ -1852,11 +1985,11 @@
04
0A
06
-@000006D0
52
96
10
42
+@00000750
52
96
02
@@ -1869,11 +2002,11 @@
83
61
BF
-@000006E0
93
E7
07
01
+@00000760
4A
83
41
@@ -1886,11 +2019,11 @@
83
61
B7
-@000006F0
93
E7
07
02
+@00000770
4A
83
41
@@ -1903,11 +2036,11 @@
83
A5
BF
-@00000700
03
48
19
00
+@00000780
13
03
70
@@ -1920,11 +2053,11 @@
06
F8
FB
-@00000710
13
76
F6
0F
+@00000790
63
67
C3
@@ -1937,11 +2070,11 @@
42
22
96
-@00000720
02
86
C2
85
+@000007A0
46
89
13
@@ -1954,11 +2087,11 @@
00
63
89
-@00000730
E5
42
23
00
+@000007B0
E5
00
03
@@ -1971,11 +2104,11 @@
4C
3E
85
-@00000740
23
00
05
00
+@000007C0
83
45
01
@@ -1988,11 +2121,11 @@
45
C5
BD
-@00000750
83
45
19
00
+@000007D0
25
46
13
@@ -2005,11 +2138,11 @@
FD
13
77
-@00000760
F7
0F
63
77
+@000007E0
E6
3A
13
@@ -2022,11 +2155,11 @@
3C
42
89
-@00000770
01
47
81
B7
+@000007F0
81
46
25
@@ -2039,11 +2172,11 @@
96
05
09
-@00000780
86
06
AE
96
+@00000800
83
45
09
@@ -2056,11 +2189,11 @@
87
05
FD
-@00000790
13
77
F7
0F
+@00000810
E3
72
E6
@@ -2073,11 +2206,11 @@
00
83
45
-@000007A0
23
00
13
09
+@00000820
23
00
11
@@ -2090,11 +2223,11 @@
06
D0
40
-@000007B0
93
E7
07
01
+@00000830
E5
BD
13
@@ -2107,11 +2240,11 @@
25
0B
00
-@000007C0
42
8B
75
3E
+@00000840
83
47
19
@@ -2124,11 +2257,11 @@
9D
07
E2
-@000007D0
B1
B5
13
08
+@00000850
4B
00
29
@@ -2141,11 +2274,11 @@
26
0B
00
-@000007E0
11
0B
63
01
+@00000860
06
3A
83
@@ -2158,11 +2291,11 @@
3E
63
09
-@000007F0
07
3E
B2
85
+@00000870
29
A0
33
@@ -2175,11 +2308,11 @@
00
03
C8
-@00000800
15
00
85
05
+@00000880
E3
19
08
@@ -2192,11 +2325,11 @@
82
07
3A
-@00000810
63
5B
B0
40
+@00000890
33
08
B6
@@ -2209,11 +2342,11 @@
00
05
06
-@00000820
85
07
A3
8F
+@000008A0
E7
FE
E3
@@ -2226,11 +2359,11 @@
00
33
85
-@00000830
B6
40
13
03
+@000008B0
19
00
3A
@@ -2243,11 +2376,11 @@
D1
D5
3C
-@00000840
05
07
A3
0F
+@000008C0
F7
FE
E3
@@ -2260,11 +2393,11 @@
00
E3
9C
-@00000850
07
DA
E9
B3
+@000008D0
46
89
7D
@@ -2277,11 +2410,11 @@
25
0B
00
-@00000860
41
46
11
0B
+@000008E0
29
3E
83
@@ -2294,11 +2427,11 @@
00
E3
9C
-@00000870
07
D8
6D
B3
+@000008F0
13
08
4B
@@ -2311,11 +2444,11 @@
E7
27
00
-@00000880
13
08
4B
00
+@00000900
29
46
1D
@@ -2328,11 +2461,11 @@
16
63
80
-@00000890
07
30
03
26
+@00000910
0B
00
13
@@ -2345,11 +2478,11 @@
00
23
00
-@000008A0
C5
00
11
0B
+@00000920
3E
95
13
@@ -2362,11 +2495,11 @@
06
00
02
-@000008B0
63
57
D0
34
+@00000930
85
07
A3
@@ -2379,11 +2512,11 @@
FE
83
47
-@000008C0
19
00
33
05
+@00000940
D7
00
E3
@@ -2396,11 +2529,11 @@
E7
07
04
-@000008D0
13
08
4B
00
+@00000950
41
46
DD
@@ -2413,11 +2546,11 @@
E7
07
04
-@000008E0
11
0B
83
45
+@00000960
07
00
01
@@ -2430,11 +2563,11 @@
0E
30
06
-@000008F0
A5
4F
29
43
+@00000970
13
0F
40
@@ -2447,11 +2580,11 @@
06
18
00
-@00000900
9D
E1
0C
12
+@00000980
2E
98
23
@@ -2464,11 +2597,11 @@
06
17
07
-@00000910
0C
12
B2
95
+@00000990
23
84
75
@@ -2481,11 +2614,11 @@
08
16
00
-@00000920
13
06
18
00
+@000009A0
F9
DD
63
@@ -2498,11 +2631,11 @@
03
93
02
-@00000930
01
12
33
8D
+@000009B0
02
01
B3
@@ -2515,11 +2648,11 @@
00
13
06
-@00000940
38
00
B3
C5
+@000009C0
E5
03
33
@@ -2532,11 +2665,11 @@
00
83
C5
-@00000950
02
00
23
04
+@000009D0
BD
EE
B3
@@ -2549,11 +2682,11 @@
48
08
00
-@00000960
23
84
0C
EF
+@000009E0
A6
95
03
@@ -2566,11 +2699,11 @@
95
23
84
-@00000970
05
EF
05
07
+@000009F0
E3
1E
17
@@ -2583,11 +2716,11 @@
FF
95
E3
-@00000980
B3
87
C6
40
+@00000A00
AA
97
13
@@ -2600,11 +2733,11 @@
28
05
05
-@00000990
A3
0F
E5
FE
+@00000A10
E3
9D
A7
@@ -2617,11 +2750,11 @@
96
13
88
-@000009A0
F6
FF
3C
00
+@00000A20
B3
05
C5
@@ -2634,11 +2767,11 @@
05
85
07
-@000009B0
A3
0F
E5
FE
+@00000A30
E3
1A
B5
@@ -2651,11 +2784,11 @@
87
13
05
-@000009C0
00
02
85
46
+@00000A40
05
07
B3
@@ -2668,11 +2801,11 @@
97
A3
0F
-@000009D0
A7
FE
E3
49
+@00000A50
F6
FE
05
@@ -2685,11 +2818,11 @@
95
DD
B3
-@000009E0
93
E7
27
00
+@00000A60
29
46
13
@@ -2702,11 +2835,11 @@
00
63
9E
-@000009F0
65
20
83
25
+@00000A70
0B
00
46
@@ -2719,11 +2852,11 @@
46
E5
B7
-@00000A00
93
E7
07
04
+@00000A80
41
46
C5
@@ -2736,11 +2869,11 @@
06
C0
06
-@00000A10
03
27
0B
00
+@00000A90
11
0B
63
@@ -2753,11 +2886,11 @@
04
A6
88
-@00000A20
09
C6
97
08
+@00000AA0
00
00
93
@@ -2770,11 +2903,11 @@
00
13
0E
-@00000A30
A1
01
9A
85
+@00000AB0
93
0E
A0
@@ -2787,11 +2920,11 @@
FF
03
46
-@00000A40
07
00
8D
05
+@00000AC0
05
07
13
@@ -2804,11 +2937,11 @@
98
46
96
-@00000A50
03
48
08
00
+@00000AD0
03
46
06
@@ -2821,11 +2954,11 @@
8F
C5
FE
-@00000A60
E3
9D
C5
FD
+@00000AE0
C1
8B
13
@@ -2838,11 +2971,11 @@
85
F6
FE
-@00000A70
45
48
33
07
+@00000AF0
B5
00
93
@@ -2855,11 +2988,11 @@
1A
05
05
-@00000A80
A3
0F
F5
FE
+@00000B00
E3
1D
E5
@@ -2872,11 +3005,11 @@
86
F6
FF
-@00000A90
AA
87
93
05
+@00000B10
13
01
03
@@ -2889,11 +3022,11 @@
07
A3
8F
-@00000AA0
E7
FE
E3
1A
+@00000B20
B3
FE
C5
@@ -2906,11 +3039,11 @@
02
2A
87
-@00000AB0
13
08
00
02
+@00000B30
85
45
C5
@@ -2923,11 +3056,11 @@
40
B2
97
-@00000AC0
AA
97
A3
0F
+@00000B40
07
FF
E3
@@ -2940,11 +3073,11 @@
47
63
54
-@00000AD0
C7
00
93
07
+@00000B50
06
FF
3E
@@ -2957,11 +3090,11 @@
03
29
00
-@00000AE0
E3
93
07
B2
+@00000B60
25
BE
C2
@@ -2974,11 +3107,11 @@
C2
65
02
-@00000AF0
93
03
01
12
+@00000B70
33
8C
03
@@ -2991,11 +3124,11 @@
00
33
88
-@00000B00
54
00
03
48
+@00000B80
08
00
B3
@@ -3008,11 +3141,11 @@
EF
99
BD
-@00000B10
01
47
A5
48
+@00000B90
13
16
27
@@ -3025,11 +3158,11 @@
07
2E
97
-@00000B20
83
45
08
00
+@00000BA0
13
07
07
@@ -3042,11 +3175,11 @@
76
F6
0F
-@00000B30
E3
F2
C8
FE
+@00000BB0
42
89
B5
@@ -3059,11 +3192,11 @@
0B
55
B3
-@00000B40
03
27
0B
00
+@00000BC0
83
45
29
@@ -3076,11 +3209,11 @@
FF
7D
86
-@00000B50
71
8F
09
09
+@00000BD0
B9
BE
91
@@ -3093,11 +3226,11 @@
95
9D
B1
-@00000B60
03
47
09
00
+@00000BE0
BE
86
AA
@@ -3110,11 +3243,11 @@
00
83
47
-@00000B70
19
00
13
03
+@00000BF0
19
00
E3
@@ -3127,11 +3260,11 @@
E7
17
00
-@00000B80
A1
46
E9
B9
+@00000C00
17
06
00
@@ -3144,11 +3277,11 @@
B1
33
07
-@00000B90
D5
00
93
07
+@00000C10
00
02
63
@@ -3161,11 +3294,11 @@
0F
F5
FE
-@00000BA0
E3
1D
E5
FE
+@00000C20
FD
56
F5
@@ -3178,11 +3311,11 @@
85
BD
B4
-@00000BB0
13
88
F6
FF
+@00000C30
63
D2
D5
@@ -3195,11 +3328,11 @@
97
13
07
-@00000BC0
00
02
05
05
+@00000C40
A3
0F
E5
@@ -3212,11 +3345,11 @@
86
D5
40
-@00000BD0
C2
96
3D
B9
+@00000C50
46
89
31
@@ -3229,11 +3362,11 @@
46
21
B5
-@00000BE0
93
F5
07
01
+@00000C60
B9
C1
2A
@@ -3246,11 +3379,11 @@
27
0B
00
-@00000BF0
13
07
15
00
+@00000C70
11
0B
23
@@ -3263,11 +3396,11 @@
00
83
47
-@00000C00
19
00
3A
85
+@00000C80
E3
91
07
@@ -3280,11 +3413,11 @@
BE
09
05
-@00000C10
A9
BF
93
87
+@00000C90
E6
FF
C2
@@ -3297,11 +3430,11 @@
87
E6
FF
-@00000C20
B2
86
3E
86
+@00000CA0
B5
B5
2A
@@ -3314,11 +3447,11 @@
FF
E3
45
-@00000C30
D0
F8
C2
86
+@00000CB0
2A
87
E5
@@ -3327,24 +3460,24 @@
86
D9
BE
-@00000C3C
+@00000CB8
17
F5
FF
E7
13
05
-45
-3C
+85
+34
17
F6
FF
E7
13
06
-06
-43
-@00000C4C
+46
+3B
+@00000CC8
41
11
09
@@ -3361,7 +3494,7 @@
C6
EF
F0
-@00000C5C
+@00000CD8
CF
C3
17
@@ -3370,17 +3503,17 @@
1F
13
05
-25
-3A
+65
+32
17
F6
FF
1F
13
06
-@00000C6C
-A6
-39
+@00000CE8
+E6
+31
09
8E
97
@@ -3395,24 +3528,24 @@
F0
EF
C1
-@00000C7C
+@00000CF8
17
F5
FF
1F
13
05
-45
-38
+85
+30
17
F6
FF
1F
13
06
-C6
-37
-@00000C8C
+06
+30
+@00000D08
09
8E
81
@@ -3429,11 +3562,11 @@
F0
FF
E7
-@00000C9C
+@00000D18
E7
80
-80
-36
+C0
+2E
85
45
01
@@ -3446,7 +3579,7 @@
05
00
00
-@00000CAC
+@00000D28
13
05
05
@@ -3463,7 +3596,7 @@
5F
B7
06
-@00000CBC
+@00000D38
00
C0
B2
@@ -3480,7 +3613,7 @@
45
55
8F
-@00000CCC
+@00000D48
98
C7
37
@@ -3493,7 +3626,7 @@
01
82
80
-@00000CD8
+@00000D54
41
11
0F
@@ -3510,7 +3643,7 @@
47
85
47
-@00000CE8
+@00000D64
63
86
E6
@@ -3527,7 +3660,7 @@
51
93
07
-@00000CF8
+@00000D74
05
06
09
@@ -3544,7 +3677,7 @@
06
85
04
-@00000D08
+@00000D84
98
42
E3
@@ -3561,7 +3694,7 @@
37
0B
00
-@00000D18
+@00000D94
13
07
77
@@ -3578,7 +3711,7 @@
06
63
08
-@00000D28
+@00000DA4
D6
00
B2
@@ -3595,7 +3728,7 @@
FE
30
51
-@00000D38
+@00000DB4
85
46
05
@@ -3612,12 +3745,12 @@
9E
E6
FE
-@00000D48
+@00000DC4
41
01
82
80
-@00000D4C
+@00000DC8
00
30
01
@@ -3634,7 +3767,7 @@
30
04
10
-@00000D5C
+@00000DD8
00
30
05
@@ -3651,7 +3784,7 @@
F9
FF
FF
-@00000D6C
+@00000DE8
30
F9
FF
@@ -3668,7 +3801,7 @@
F9
FF
FF
-@00000D7C
+@00000DF8
30
F9
FF
@@ -3685,7 +3818,7 @@
F9
FF
FF
-@00000D8C
+@00000E08
30
F9
FF
@@ -3702,7 +3835,7 @@
F9
FF
FF
-@00000D9C
+@00000E18
30
F9
FF
@@ -3719,7 +3852,7 @@
FB
FF
FF
-@00000DAC
+@00000E28
7E
F9
FF
@@ -3736,7 +3869,7 @@
F9
FF
FF
-@00000DBC
+@00000E38
7E
F9
FF
@@ -3753,7 +3886,7 @@
F9
FF
FF
-@00000DCC
+@00000E48
7E
F9
FF
@@ -3770,7 +3903,7 @@
F9
FF
FF
-@00000DDC
+@00000E58
7E
F9
FF
@@ -3787,7 +3920,7 @@
F9
FF
FF
-@00000DEC
+@00000E68
7E
F9
FF
@@ -3804,7 +3937,7 @@
F9
FF
FF
-@00000DFC
+@00000E78
7E
F9
FF
@@ -3821,7 +3954,7 @@
F9
FF
FF
-@00000E0C
+@00000E88
7E
F9
FF
@@ -3838,7 +3971,7 @@
F9
FF
FF
-@00000E1C
+@00000E98
7E
F9
FF
@@ -3855,7 +3988,7 @@
FD
FF
FF
-@00000E2C
+@00000EA8
7E
F9
FF
@@ -3872,7 +4005,7 @@
F9
FF
FF
-@00000E3C
+@00000EB8
7E
F9
FF
@@ -3889,7 +4022,7 @@
FA
FF
FF
-@00000E4C
+@00000EC8
7E
F9
FF
@@ -3906,7 +4039,7 @@
F9
FF
FF
-@00000E5C
+@00000ED8
7E
F9
FF
@@ -3923,7 +4056,7 @@
F9
FF
FF
-@00000E6C
+@00000EE8
7E
F9
FF
@@ -3940,7 +4073,7 @@
FA
FF
FF
-@00000E7C
+@00000EF8
7E
F9
FF
@@ -3957,7 +4090,7 @@
FB
FF
FF
-@00000E8C
+@00000F08
9A
F8
FF
@@ -3974,7 +4107,7 @@
F8
FF
FF
-@00000E9C
+@00000F18
9A
F8
FF
@@ -3991,7 +4124,7 @@
F8
FF
FF
-@00000EAC
+@00000F28
9A
F8
FF
@@ -4008,7 +4141,7 @@
F8
FF
FF
-@00000EBC
+@00000F38
9A
F8
FF
@@ -4025,7 +4158,7 @@
F8
FF
FF
-@00000ECC
+@00000F48
9A
F8
FF
@@ -4042,7 +4175,7 @@
F8
FF
FF
-@00000EDC
+@00000F58
9A
F8
FF
@@ -4059,7 +4192,7 @@
F8
FF
FF
-@00000EEC
+@00000F68
9A
F8
FF
@@ -4076,7 +4209,7 @@
F8
FF
FF
-@00000EFC
+@00000F78
9A
F8
FF
@@ -4093,7 +4226,7 @@
FB
FF
FF
-@00000F0C
+@00000F88
9A
F8
FF
@@ -4110,7 +4243,7 @@
F8
FF
FF
-@00000F1C
+@00000F98
9A
F8
FF
@@ -4127,7 +4260,7 @@
FB
FF
FF
-@00000F2C
+@00000FA8
9A
F8
FF
@@ -4144,7 +4277,7 @@
F8
FF
FF
-@00000F3C
+@00000FB8
9A
F8
FF
@@ -4161,7 +4294,7 @@
F8
FF
FF
-@00000F4C
+@00000FC8
9A
F8
FF
@@ -4178,7 +4311,7 @@
FD
FF
FF
-@00000F5C
+@00000FD8
9A
F8
FF
@@ -4195,7 +4328,7 @@
65
6C
6C
-@00000F6C
+@00000FE8
6F
2C
20
@@ -4212,7 +4345,7 @@
31
32
33
-@00000F7C
+@00000FF8
34
35
36
@@ -4229,7 +4362,7 @@
00
00
00
-@00000F8C
+@00001008
30
31
32
@@ -4246,7 +4379,7 @@
64
65
66
-@00000F9C
+@00001018
67
68
69
@@ -4263,7 +4396,7 @@
74
75
76
-@00000FAC
+@00001028
77
78
79
@@ -4280,7 +4413,7 @@
35
36
37
-@00000FBC
+@00001038
38
39
41
@@ -4297,7 +4430,7 @@
4C
4D
4E
-@00000FCC
+@00001048
4F
50
51
@@ -4314,7 +4447,7 @@
00
00
00
-@00000FDC
+@00001058
3C
4E
55
diff --git a/verilog/includes/includes.gl+sdf.caravel_user_project b/verilog/includes/includes.gl+sdf.caravel_user_project
index a8a4d16..1fe8cb3 100644
--- a/verilog/includes/includes.gl+sdf.caravel_user_project
+++ b/verilog/includes/includes.gl+sdf.caravel_user_project
@@ -1,3 +1,21 @@
-// Caravel user project includes
-$USER_PROJECT_VERILOG/gl/user_project_wrapper.v
-$USER_PROJECT_VERILOG/gl/Marmot.v
++define+RANDOMIZE_MEM_INIT
++define+RANDOMIZE_REG_INIT
++define+RANDOMIZE_DELAY=1
++define+UART_HIGH_SPEED
+
+// Caravel user project includes
+-v $(USER_PROJECT_VERILOG)/gl/user_project_wrapper.v
+-v $(USER_PROJECT_VERILOG)/gl/Marmot.v
++incdir+$(USER_PROJECT_VERILOG)/gl
+
+-v $(USER_PROJECT_VERILOG)/lib/sky130_sram_1kbyte_1rw1r_32x256_8.v
+//-v $(USER_PROJECT_VERILOG)/lib/sky130_sram_2kbyte_1rw1r_32x512_8.v
+
+// SPI Flash model
++define+SPEEDSIM
+-v $(USER_PROJECT_VERILOG)/dv/vip/MX25U3235F.v
+
+// UART model
++incdir+$(USER_PROJECT_VERILOG)/dv/vip/uart
+-v $(USER_PROJECT_VERILOG)/dv/vip/uart/uart_tb.v
+
diff --git a/verilog/includes/includes.gl.caravel_user_project b/verilog/includes/includes.gl.caravel_user_project
index b860173..1fe8cb3 100644
--- a/verilog/includes/includes.gl.caravel_user_project
+++ b/verilog/includes/includes.gl.caravel_user_project
@@ -1,3 +1,21 @@
-# Caravel user project includes
++define+RANDOMIZE_MEM_INIT
++define+RANDOMIZE_REG_INIT
++define+RANDOMIZE_DELAY=1
++define+UART_HIGH_SPEED
+
+// Caravel user project includes
-v $(USER_PROJECT_VERILOG)/gl/user_project_wrapper.v
-v $(USER_PROJECT_VERILOG)/gl/Marmot.v
++incdir+$(USER_PROJECT_VERILOG)/gl
+
+-v $(USER_PROJECT_VERILOG)/lib/sky130_sram_1kbyte_1rw1r_32x256_8.v
+//-v $(USER_PROJECT_VERILOG)/lib/sky130_sram_2kbyte_1rw1r_32x512_8.v
+
+// SPI Flash model
++define+SPEEDSIM
+-v $(USER_PROJECT_VERILOG)/dv/vip/MX25U3235F.v
+
+// UART model
++incdir+$(USER_PROJECT_VERILOG)/dv/vip/uart
+-v $(USER_PROJECT_VERILOG)/dv/vip/uart/uart_tb.v
+
diff --git a/verilog/includes/includes.rtl.caravel_user_project b/verilog/includes/includes.rtl.caravel_user_project
index 0a7740f..ebaeb45 100644
--- a/verilog/includes/includes.rtl.caravel_user_project
+++ b/verilog/includes/includes.rtl.caravel_user_project
@@ -4,9 +4,8 @@
+define+RANDOMIZE_REG_INIT
+define+RANDOMIZE_DELAY=1
+define+UART_HIGH_SPEED
-+define+WAVEFORM
-# Caravel user project includes
+// Caravel user project includes
-v $(USER_PROJECT_VERILOG)/rtl/user_project_wrapper.v
+incdir+$(USER_PROJECT_VERILOG)/rtl/marmot
@@ -17,16 +16,11 @@
-v $(USER_PROJECT_VERILOG)/rtl/marmot/SRLatch.v
-v $(USER_PROJECT_VERILOG)/lib/sky130_sram_1kbyte_1rw1r_32x256_8.v
-#-v $(USER_PROJECT_VERILOG)/lib/sky130_sram_2kbyte_1rw1r_32x512_8.v
+//-v $(USER_PROJECT_VERILOG)/lib/sky130_sram_2kbyte_1rw1r_32x512_8.v
// SPI Flash model
-//+define+SPEEDSIM
-//-v $(USER_PROJECT_VERILOG)/dv/vip/MX25U3235F.v
-
--v $(USER_PROJECT_VERILOG)/dv/vip/w25q16jv.v
-
-// SPI RAM model (protected, Questa/Modelsim is needed)
-//-v $(USER_PROJECT_VERILOG)/dv/vip/APM_APS6404L-3SQN_SQPI_PSRAM_model_v2.9_encrypt.vp_modelsim
++define+SPEEDSIM
+-v $(USER_PROJECT_VERILOG)/dv/vip/MX25U3235F.v
// UART model
+incdir+$(USER_PROJECT_VERILOG)/dv/vip/uart