diff --git a/system/makefile b/system/makefile
index bd86b5b51e6d684539ee188f010988be9916aeb9..4ce056683920563e9c8e05ca518cd82af53c1b7b 100644
--- a/system/makefile
+++ b/system/makefile
@@ -45,6 +45,9 @@ NANOSOC_HTML_DIR := $(NANOSOC_SYSTEM_DIR)/html
 VERILOG_DIR      := $(NANOSOC_SYSTEM_DIR)/verilog
 TESTCODES_DIR    := $(NANOSOC_SYSTEM_DIR)/testcodes
 
+# Project System Directory
+PROJ_SYS_DIR     := $(PROJECT_DIR)/system
+
 # Name of test directory (e.g. hello, dhry)
 # TESTNAME must be specified on the make command line
 TESTNAME    =
@@ -63,17 +66,29 @@ TOOL_CHAIN = ds5
 CPU_PRODUCT ?= CORTEX_M0
 DMA_PRODUCT ?= DMA_230
 
+# ADP command File
+# Defaultly set to demo adp command file
+DEFAULT_ADP_FILE = $(TESTCODES_DIR)/adp_demo/adp.cmd
+ADP_FILE ?= $(DEFAULT_ADP_FILE)
+
+# Bootrom generation
+ifneq ($(BOOTROM_GEN),)
+MEM_INIT := +define+MEM_INIT
+# Use default adp file when generating bootrom
+ADP_FILE := $(DEFAULT_ADP_FILE)
+else
+MEM_INIT := 
+endif
+
+ADP_PATH := $(shell realpath $(ADP_FILE))
+ADP_OPTIONS := -define ADP_FILE=\"$(ADP_PATH)\"
+
 # Simulator Defines
-DEFINES_VC  += +define+CORTEX_M0 +define+USE_TARMAC
+DEFINES_VC  += $(MEM_INIT) +define+CORTEX_M0 +define+USE_TARMAC 
 
 # Simulator Command file to specify RTL source files
 TBENCH_VC   ?= -f $(PROJECT_DIR)/flist/project/system.flist
 
-#ADP command File
-# Defaultly set to demo adp command file
-ADP_FILE ?= $(TESTCODES_DIR)/adp_demo/adp.cmd
-ADP_PATH := $(shell realpath $(ADP_FILE))
-ADP_OPTIONS := -define ADP_FILE=\"$(ADP_PATH)\"
 
 # Simulator type (mti/vcs/xm)
 SIMULATOR   = xm
@@ -96,7 +111,7 @@ VCS_SIM_OPTION = +vcs+lic+wait +vcs+flush+log -assert nopostproc
 VCS_VC_OPTIONS = -f $(TBENCH_VC) $(ACCELERATOR_VC)
 
 # XM verilog option
-XMSIM_OPTIONS  = -unbuffered -status -LICQUEUE -f xmsim.args -cdslib cds.lib -hdlvar hdl.var -NBASYNC 
+XMSIM_OPTIONS  = -unbuffered -status -LICQUEUE -f xmsim.args -cdslib cds.lib -hdlvar hdl.var -NBASYNC
 XM_VC_OPTIONS  = $(TBENCH_VC) $(ACCELERATOR_VC) $(ADP_OPTIONS) 
 
 # Boot Loader image
@@ -176,10 +191,22 @@ run_xm : code compile_xm
 	@if [ ! -d $(SIM_DIR)/logs ] ; then \
 	  mkdir $(SIM_DIR)/logs; \
 	fi
+# Bootrom generation
+ifneq ($(BOOTROM_GEN),)
+# Create directories for bootrom for this simulation
+	mkdir -p $(SIM_DIR)/bootrom/hex/
+	mkdir -p $(SIM_DIR)/bootrom/verilog/
+	mkdir -p $(SIM_DIR)/bootrom/bintxt/
+# Copy bootrom hex to simulaiton directory
+	cp $(TESTCODES_DIR)/bootloader/bootloader.hex $(SIM_DIR)/bootrom/hex/
+endif
 	@echo run  >  $(SIM_DIR)/run.tcl.tmp
 	@echo exit >> $(SIM_DIR)/run.tcl.tmp
 	@mv  $(SIM_DIR)/run.tcl.tmp $(SIM_DIR)/run.tcl
 	cd $(SIM_DIR); xmsim $(XMSIM_OPTIONS) -input run.tcl  | tee logs/run_$(TESTNAME).log ;
+ifneq ($(BOOTROM_GEN),)
+	cp -r $(SIM_DIR)/bootrom $(PROJ_SYS_DIR)
+endif
 	# @make verify
 
 # Run simulation in interactive mode
diff --git a/system/src/bootrom/verilog/bootrom.v b/system/src/bootrom/verilog/bootrom.v
deleted file mode 100644
index 95919b78af3dcc0a33c06a1b0aadedbd84e976dd..0000000000000000000000000000000000000000
--- a/system/src/bootrom/verilog/bootrom.v
+++ /dev/null
@@ -1,277 +0,0 @@
-//------------------------------------------------------------------------------------
-// customised auto-generated synthesizable ROM module abstraction
-// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
-//
-// Contributors
-//
-// David Flynn (d.w.flynn@soton.ac.uk)
-//    Date:    2302101100
-// Copyright (c) 2021-2, SoC Labs (www.soclabs.org)
-//------------------------------------------------------------------------------------
-module bootrom (
-  input  wire CLK,
-  input  wire EN,
-  input  wire [9:2] ADDR,
-  output reg [31:0] RDATA );
-reg [9:2] addr_r;
-always @(posedge CLK) if (EN) addr_r <= ADDR;
-always @(addr_r)  case(addr_r[9:2]) 
-     8'h00 : RDATA <= 32'h30000368; // 0x0000
-     8'h01 : RDATA <= 32'h10000335; // 0x0004
-     8'h02 : RDATA <= 32'h1000033d; // 0x0008
-     8'h03 : RDATA <= 32'h1000033f; // 0x000c
-     8'h04 : RDATA <= 32'h00000000; // 0x0010
-     8'h05 : RDATA <= 32'h00000000; // 0x0014
-     8'h06 : RDATA <= 32'h00000000; // 0x0018
-     8'h07 : RDATA <= 32'h00000000; // 0x001c
-     8'h08 : RDATA <= 32'h00000000; // 0x0020
-     8'h09 : RDATA <= 32'h00000000; // 0x0024
-     8'h0a : RDATA <= 32'h00000000; // 0x0028
-     8'h0b : RDATA <= 32'h10000341; // 0x002c
-     8'h0c : RDATA <= 32'h00000000; // 0x0030
-     8'h0d : RDATA <= 32'h00000000; // 0x0034
-     8'h0e : RDATA <= 32'h10000343; // 0x0038
-     8'h0f : RDATA <= 32'h10000345; // 0x003c
-     8'h10 : RDATA <= 32'h10000347; // 0x0040
-     8'h11 : RDATA <= 32'h10000347; // 0x0044
-     8'h12 : RDATA <= 32'h10000347; // 0x0048
-     8'h13 : RDATA <= 32'h10000347; // 0x004c
-     8'h14 : RDATA <= 32'h10000347; // 0x0050
-     8'h15 : RDATA <= 32'h10000347; // 0x0054
-     8'h16 : RDATA <= 32'h10000347; // 0x0058
-     8'h17 : RDATA <= 32'h10000347; // 0x005c
-     8'h18 : RDATA <= 32'h10000347; // 0x0060
-     8'h19 : RDATA <= 32'h10000347; // 0x0064
-     8'h1a : RDATA <= 32'h10000347; // 0x0068
-     8'h1b : RDATA <= 32'h00000000; // 0x006c
-     8'h1c : RDATA <= 32'h10000347; // 0x0070
-     8'h1d : RDATA <= 32'h10000347; // 0x0074
-     8'h1e : RDATA <= 32'h10000347; // 0x0078
-     8'h1f : RDATA <= 32'h10000347; // 0x007c
-     8'h20 : RDATA <= 32'h10000347; // 0x0080
-     8'h21 : RDATA <= 32'h10000347; // 0x0084
-     8'h22 : RDATA <= 32'h10000347; // 0x0088
-     8'h23 : RDATA <= 32'h10000347; // 0x008c
-     8'h24 : RDATA <= 32'h10000347; // 0x0090
-     8'h25 : RDATA <= 32'h10000347; // 0x0094
-     8'h26 : RDATA <= 32'h10000347; // 0x0098
-     8'h27 : RDATA <= 32'h10000347; // 0x009c
-     8'h28 : RDATA <= 32'h10000347; // 0x00a0
-     8'h29 : RDATA <= 32'h10000347; // 0x00a4
-     8'h2a : RDATA <= 32'h10000347; // 0x00a8
-     8'h2b : RDATA <= 32'h10000347; // 0x00ac
-     8'h2c : RDATA <= 32'h10000347; // 0x00b0
-     8'h2d : RDATA <= 32'h10000347; // 0x00b4
-     8'h2e : RDATA <= 32'h10000347; // 0x00b8
-     8'h2f : RDATA <= 32'h10000347; // 0x00bc
-     8'h30 : RDATA <= 32'hf802f000; // 0x00c0
-     8'h31 : RDATA <= 32'hf83ef000; // 0x00c4
-     8'h32 : RDATA <= 32'hc830a00c; // 0x00c8
-     8'h33 : RDATA <= 32'h18243808; // 0x00cc
-     8'h34 : RDATA <= 32'h46a2182d; // 0x00d0
-     8'h35 : RDATA <= 32'h46ab1e67; // 0x00d4
-     8'h36 : RDATA <= 32'h465d4654; // 0x00d8
-     8'h37 : RDATA <= 32'hd10142ac; // 0x00dc
-     8'h38 : RDATA <= 32'hf830f000; // 0x00e0
-     8'h39 : RDATA <= 32'h3e0f467e; // 0x00e4
-     8'h3a : RDATA <= 32'h46b6cc0f; // 0x00e8
-     8'h3b : RDATA <= 32'h42332601; // 0x00ec
-     8'h3c : RDATA <= 32'h1afbd000; // 0x00f0
-     8'h3d : RDATA <= 32'h46ab46a2; // 0x00f4
-     8'h3e : RDATA <= 32'h47184333; // 0x00f8
-     8'h3f : RDATA <= 32'h000002dc; // 0x00fc
-     8'h40 : RDATA <= 32'h000002fc; // 0x0100
-     8'h41 : RDATA <= 32'hd3023a10; // 0x0104
-     8'h42 : RDATA <= 32'hc178c878; // 0x0108
-     8'h43 : RDATA <= 32'h0752d8fa; // 0x010c
-     8'h44 : RDATA <= 32'hc830d301; // 0x0110
-     8'h45 : RDATA <= 32'hd501c130; // 0x0114
-     8'h46 : RDATA <= 32'h600c6804; // 0x0118
-     8'h47 : RDATA <= 32'h00004770; // 0x011c
-     8'h48 : RDATA <= 32'h24002300; // 0x0120
-     8'h49 : RDATA <= 32'h26002500; // 0x0124
-     8'h4a : RDATA <= 32'hd3013a10; // 0x0128
-     8'h4b : RDATA <= 32'hd8fbc178; // 0x012c
-     8'h4c : RDATA <= 32'hd3000752; // 0x0130
-     8'h4d : RDATA <= 32'hd500c130; // 0x0134
-     8'h4e : RDATA <= 32'h4770600b; // 0x0138
-     8'h4f : RDATA <= 32'hbd1fb51f; // 0x013c
-     8'h50 : RDATA <= 32'hbd10b510; // 0x0140
-     8'h51 : RDATA <= 32'hf915f000; // 0x0144
-     8'h52 : RDATA <= 32'hf7ff4611; // 0x0148
-     8'h53 : RDATA <= 32'hf000fff7; // 0x014c
-     8'h54 : RDATA <= 32'hf000f868; // 0x0150
-     8'h55 : RDATA <= 32'hb403f92d; // 0x0154
-     8'h56 : RDATA <= 32'hfff2f7ff; // 0x0158
-     8'h57 : RDATA <= 32'hf000bc03; // 0x015c
-     8'h58 : RDATA <= 32'h0000f933; // 0x0160
-     8'h59 : RDATA <= 32'h68012000; // 0x0164
-     8'h5a : RDATA <= 32'h6841468d; // 0x0168
-     8'h5b : RDATA <= 32'h00004708; // 0x016c
-     8'h5c : RDATA <= 32'h48532141; // 0x0170
-     8'h5d : RDATA <= 32'h61010149; // 0x0174
-     8'h5e : RDATA <= 32'h60812101; // 0x0178
-     8'h5f : RDATA <= 32'h60814851; // 0x017c
-     8'h60 : RDATA <= 32'h20204951; // 0x0180
-     8'h61 : RDATA <= 32'h47706188; // 0x0184
-     8'h62 : RDATA <= 32'h684a494e; // 0x0188
-     8'h63 : RDATA <= 32'hd1fc07d2; // 0x018c
-     8'h64 : RDATA <= 32'h07d2684a; // 0x0190
-     8'h65 : RDATA <= 32'h6008d100; // 0x0194
-     8'h66 : RDATA <= 32'h494a4770; // 0x0198
-     8'h67 : RDATA <= 32'h2b007803; // 0x019c
-     8'h68 : RDATA <= 32'h684ad009; // 0x01a0
-     8'h69 : RDATA <= 32'hd1fc07d2; // 0x01a4
-     8'h6a : RDATA <= 32'h07d2684a; // 0x01a8
-     8'h6b : RDATA <= 32'h600bd100; // 0x01ac
-     8'h6c : RDATA <= 32'h2b001c40; // 0x01b0
-     8'h6d : RDATA <= 32'h4770d1f2; // 0x01b4
-     8'h6e : RDATA <= 32'h4c44b510; // 0x01b8
-     8'h6f : RDATA <= 32'h48416821; // 0x01bc
-     8'h70 : RDATA <= 32'hd00a2900; // 0x01c0
-     8'h71 : RDATA <= 32'h781aa342; // 0x01c4
-     8'h72 : RDATA <= 32'hd0212a00; // 0x01c8
-     8'h73 : RDATA <= 32'h07c96841; // 0x01cc
-     8'h74 : RDATA <= 32'h6841d1fc; // 0x01d0
-     8'h75 : RDATA <= 32'hd01707c9; // 0x01d4
-     8'h76 : RDATA <= 32'ha341e017; // 0x01d8
-     8'h77 : RDATA <= 32'h2a00781a; // 0x01dc
-     8'h78 : RDATA <= 32'h6841d009; // 0x01e0
-     8'h79 : RDATA <= 32'hd1fc07c9; // 0x01e4
-     8'h7a : RDATA <= 32'h07c96841; // 0x01e8
-     8'h7b : RDATA <= 32'h6002d100; // 0x01ec
-     8'h7c : RDATA <= 32'h2a001c5b; // 0x01f0
-     8'h7d : RDATA <= 32'h2204d1f2; // 0x01f4
-     8'h7e : RDATA <= 32'h07c96841; // 0x01f8
-     8'h7f : RDATA <= 32'h6841d1fc; // 0x01fc
-     8'h80 : RDATA <= 32'hd10007c9; // 0x0200
-     8'h81 : RDATA <= 32'he7fe6002; // 0x0204
-     8'h82 : RDATA <= 32'h1c5b6002; // 0x0208
-     8'h83 : RDATA <= 32'hd1da2a00; // 0x020c
-     8'h84 : RDATA <= 32'h60202000; // 0x0210
-     8'h85 : RDATA <= 32'h8f4ff3bf; // 0x0214
-     8'h86 : RDATA <= 32'h8f6ff3bf; // 0x0218
-     8'h87 : RDATA <= 32'hffa2f7ff; // 0x021c
-     8'h88 : RDATA <= 32'hb510bd10; // 0x0220
-     8'h89 : RDATA <= 32'h48262141; // 0x0224
-     8'h8a : RDATA <= 32'h61010149; // 0x0228
-     8'h8b : RDATA <= 32'h60812101; // 0x022c
-     8'h8c : RDATA <= 32'h60814824; // 0x0230
-     8'h8d : RDATA <= 32'h21204a24; // 0x0234
-     8'h8e : RDATA <= 32'ha32f6191; // 0x0238
-     8'h8f : RDATA <= 32'h2a00781a; // 0x023c
-     8'h90 : RDATA <= 32'h6841d009; // 0x0240
-     8'h91 : RDATA <= 32'hd1fc07c9; // 0x0244
-     8'h92 : RDATA <= 32'h07c96841; // 0x0248
-     8'h93 : RDATA <= 32'h6002d100; // 0x024c
-     8'h94 : RDATA <= 32'h2a001c5b; // 0x0250
-     8'h95 : RDATA <= 32'h4c1dd1f2; // 0x0254
-     8'h96 : RDATA <= 32'h29006821; // 0x0258
-     8'h97 : RDATA <= 32'ha31cd00a; // 0x025c
-     8'h98 : RDATA <= 32'h2a00781a; // 0x0260
-     8'h99 : RDATA <= 32'h6841d021; // 0x0264
-     8'h9a : RDATA <= 32'hd1fc07c9; // 0x0268
-     8'h9b : RDATA <= 32'h07c96841; // 0x026c
-     8'h9c : RDATA <= 32'he017d017; // 0x0270
-     8'h9d : RDATA <= 32'h781aa31a; // 0x0274
-     8'h9e : RDATA <= 32'hd0092a00; // 0x0278
-     8'h9f : RDATA <= 32'h07c96841; // 0x027c
-     8'ha0 : RDATA <= 32'h6841d1fc; // 0x0280
-     8'ha1 : RDATA <= 32'hd10007c9; // 0x0284
-     8'ha2 : RDATA <= 32'h1c5b6002; // 0x0288
-     8'ha3 : RDATA <= 32'hd1f22a00; // 0x028c
-     8'ha4 : RDATA <= 32'h68412204; // 0x0290
-     8'ha5 : RDATA <= 32'hd1fc07c9; // 0x0294
-     8'ha6 : RDATA <= 32'h07c96841; // 0x0298
-     8'ha7 : RDATA <= 32'h6002d100; // 0x029c
-     8'ha8 : RDATA <= 32'h6002e7fe; // 0x02a0
-     8'ha9 : RDATA <= 32'h2a001c5b; // 0x02a4
-     8'haa : RDATA <= 32'h2000d1da; // 0x02a8
-     8'hab : RDATA <= 32'hf3bf6020; // 0x02ac
-     8'hac : RDATA <= 32'hf3bf8f4f; // 0x02b0
-     8'had : RDATA <= 32'hf7ff8f6f; // 0x02b4
-     8'hae : RDATA <= 32'h2000ff55; // 0x02b8
-     8'haf : RDATA <= 32'h0000bd10; // 0x02bc
-     8'hb0 : RDATA <= 32'h40006000; // 0x02c0
-     8'hb1 : RDATA <= 32'h4000e000; // 0x02c4
-     8'hb2 : RDATA <= 32'h40011000; // 0x02c8
-     8'hb3 : RDATA <= 32'h4001f000; // 0x02cc
-     8'hb4 : RDATA <= 32'h52202a2a; // 0x02d0
-     8'hb5 : RDATA <= 32'h70616d65; // 0x02d4
-     8'hb6 : RDATA <= 32'h41523e2d; // 0x02d8
-     8'hb7 : RDATA <= 32'h000a324d; // 0x02dc
-     8'hb8 : RDATA <= 32'h72724540; // 0x02e0
-     8'hb9 : RDATA <= 32'h203a726f; // 0x02e4
-     8'hba : RDATA <= 32'h414d4552; // 0x02e8
-     8'hbb : RDATA <= 32'h6c632050; // 0x02ec
-     8'hbc : RDATA <= 32'h65726165; // 0x02f0
-     8'hbd : RDATA <= 32'h00000a64; // 0x02f4
-     8'hbe : RDATA <= 32'h530a0a0a; // 0x02f8
-     8'hbf : RDATA <= 32'h414c434f; // 0x02fc
-     8'hc0 : RDATA <= 32'h203a5342; // 0x0300
-     8'hc1 : RDATA <= 32'h204d5241; // 0x0304
-     8'hc2 : RDATA <= 32'h74726f43; // 0x0308
-     8'hc3 : RDATA <= 32'h4d2d7865; // 0x030c
-     8'hc4 : RDATA <= 32'h616e2030; // 0x0310
-     8'hc5 : RDATA <= 32'h6f736f6e; // 0x0314
-     8'hc6 : RDATA <= 32'h00000a63; // 0x0318
-     8'hc7 : RDATA <= 32'h48034904; // 0x031c
-     8'hc8 : RDATA <= 32'h47706008; // 0x0320
-     8'hc9 : RDATA <= 32'h48014902; // 0x0324
-     8'hca : RDATA <= 32'h47706008; // 0x0328
-     8'hcb : RDATA <= 32'h05f5e100; // 0x032c
-     8'hcc : RDATA <= 32'h30000000; // 0x0330
-     8'hcd : RDATA <= 32'h47804807; // 0x0334
-     8'hce : RDATA <= 32'h47004807; // 0x0338
-     8'hcf : RDATA <= 32'he7fee7fe; // 0x033c
-     8'hd0 : RDATA <= 32'he7fee7fe; // 0x0340
-     8'hd1 : RDATA <= 32'he7fee7fe; // 0x0344
-     8'hd2 : RDATA <= 32'h49054804; // 0x0348
-     8'hd3 : RDATA <= 32'h4b064a05; // 0x034c
-     8'hd4 : RDATA <= 32'h00004770; // 0x0350
-     8'hd5 : RDATA <= 32'h10000325; // 0x0354
-     8'hd6 : RDATA <= 32'h100000c1; // 0x0358
-     8'hd7 : RDATA <= 32'h30000068; // 0x035c
-     8'hd8 : RDATA <= 32'h30000368; // 0x0360
-     8'hd9 : RDATA <= 32'h30000168; // 0x0364
-     8'hda : RDATA <= 32'h30000168; // 0x0368
-     8'hdb : RDATA <= 32'h47704770; // 0x036c
-     8'hdc : RDATA <= 32'h46754770; // 0x0370
-     8'hdd : RDATA <= 32'hf824f000; // 0x0374
-     8'hde : RDATA <= 32'h000546ae; // 0x0378
-     8'hdf : RDATA <= 32'h46534669; // 0x037c
-     8'he0 : RDATA <= 32'h00c008c0; // 0x0380
-     8'he1 : RDATA <= 32'hb0184685; // 0x0384
-     8'he2 : RDATA <= 32'hf7ffb520; // 0x0388
-     8'he3 : RDATA <= 32'hbc60ffdd; // 0x038c
-     8'he4 : RDATA <= 32'h08492700; // 0x0390
-     8'he5 : RDATA <= 32'h260046b6; // 0x0394
-     8'he6 : RDATA <= 32'hc5c0c5c0; // 0x0398
-     8'he7 : RDATA <= 32'hc5c0c5c0; // 0x039c
-     8'he8 : RDATA <= 32'hc5c0c5c0; // 0x03a0
-     8'he9 : RDATA <= 32'hc5c0c5c0; // 0x03a4
-     8'hea : RDATA <= 32'h00493d40; // 0x03a8
-     8'heb : RDATA <= 32'h4770468d; // 0x03ac
-     8'hec : RDATA <= 32'h4604b510; // 0x03b0
-     8'hed : RDATA <= 32'h46c046c0; // 0x03b4
-     8'hee : RDATA <= 32'hf7ff4620; // 0x03b8
-     8'hef : RDATA <= 32'hbd10fecc; // 0x03bc
-     8'hf0 : RDATA <= 32'h47704800; // 0x03c0
-     8'hf1 : RDATA <= 32'h30000004; // 0x03c4
-     8'hf2 : RDATA <= 32'h20184901; // 0x03c8
-     8'hf3 : RDATA <= 32'he7febeab; // 0x03cc
-     8'hf4 : RDATA <= 32'h00020026; // 0x03d0
-     8'hf5 : RDATA <= 32'h00004770; // 0x03d4
-     8'hf6 : RDATA <= 32'h100003f8; // 0x03d8
-     8'hf7 : RDATA <= 32'h30000000; // 0x03dc
-     8'hf8 : RDATA <= 32'h00000004; // 0x03e0
-     8'hf9 : RDATA <= 32'h10000104; // 0x03e4
-     8'hfa : RDATA <= 32'h100003fc; // 0x03e8
-     8'hfb : RDATA <= 32'h30000004; // 0x03ec
-     8'hfc : RDATA <= 32'h00000364; // 0x03f0
-     8'hfd : RDATA <= 32'h10000120; // 0x03f4
-     8'hfe : RDATA <= 32'h05f5e100; // 0x03f8
-     8'hff : RDATA <= 32'h00000000; // 0x03fc
-    default : RDATA <=32'h0;
-  endcase
-endmodule
diff --git a/system/src/verilog/nanosoc_chip.v b/system/src/verilog/nanosoc_chip.v
index fe424b403dd097b85fea2760a53762faa7602e29..556ea7c8944fdeda8049fdd0d7c2be06492edab0 100644
--- a/system/src/verilog/nanosoc_chip.v
+++ b/system/src/verilog/nanosoc_chip.v
@@ -851,7 +851,7 @@ nanosoc_exp #(.ADDRWIDTH(29)
   .HADDRS      (HADDR_exp[28:0]),
   .HTRANSS     (HTRANS_exp),
   .HSIZES      (HSIZE_exp),
-  .HPROTS      (HPROTS_exp),
+  .HPROTS      (HPROT_exp),
   .HWRITES     (HWRITE_exp),
   .HREADYS     (HREADYMUX_exp),
   .HWDATAS     (HWDATA_exp),
@@ -972,7 +972,7 @@ localparam AWRAM2 = ADDR_WIDTH_RAM; // Address width - to match RAM instance siz
 
   // SRAM model
 //  cmsdk_fpga_sram #(.AW(AWRAM2)) u_fpga_ram2
-  cmsdk_fpga_rom #(.AW(AWRAM2), .filename("../rtl_sim/image.hex") ) u_fpga_ram2
+  cmsdk_fpga_rom #(.AW(AWRAM2), .filename("image.hex") ) u_fpga_ram2
    (
    // SRAM Inputs
     .CLK        (HCLK),
diff --git a/system/verif/verilog/nanosoc_tb.v b/system/verif/verilog/nanosoc_tb.v
index 80af5ab3f449ba583ab8c3875f68f06b64a95ca7..a432e058036eaa1d5b87925760fdf4faf6b4d869 100644
--- a/system/verif/verilog/nanosoc_tb.v
+++ b/system/verif/verilog/nanosoc_tb.v
@@ -89,7 +89,7 @@ localparam BE=0;
 
 SROM_Ax32
   #(.ADDRWIDTH (8),
-    .filename ("bootloader.hex"),
+    .filename ("bootrom/hex/bootloader.hex"),
     .romgen (1)
    )
    u_BOOTROM (