diff --git a/flist/nanosoc/nanosoc_chip_ip.flist b/flist/nanosoc/nanosoc_chip_ip.flist
index 980e004e4de9c828be93ae84d18580cb39e880e2..2b0a1d08a40a5610daf495ee5a993dae538474be 100644
--- a/flist/nanosoc/nanosoc_chip_ip.flist
+++ b/flist/nanosoc/nanosoc_chip_ip.flist
@@ -16,18 +16,21 @@
 +libext+.v+.vlib
 
 // =============    NanoSoC Bus Matrix IP search path    =============
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/nanosoc_chip.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/nanosoc_chip_pads.v
+$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_chip.v
+$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_chip_pads.v
 
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/nanosoc_cpu.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/nanosoc_sysio.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/nanosoc_sys_ahb_decode.v
+$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_cpu.v
+$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_sysio.v
+$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_sys_ahb_decode.v
 
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/cmsdk_ahb_cs_rom_table.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/cmsdk_mcu_pin_mux.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/cmsdk_mcu_stclkctrl.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/cmsdk_mcu_clkctrl.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/cmsdk_mcu_sysctrl.v
+$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_ahb_cs_rom_table.v
+$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_mcu_pin_mux.v
+$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_mcu_stclkctrl.v
+$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_mcu_clkctrl.v
+$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_mcu_sysctrl.v
 
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/bootrom.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/ahb_bootrom.v
\ No newline at end of file
+$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_apb_usrt.v
+$(NANOSOC_TECH_DIR)/system/src/verilog/nanosoc_ahb_bootrom.v
+
+
+$(NANOSOC_TECH_DIR)/system/src/bootrom/verilog/bootrom.v
\ No newline at end of file
diff --git a/flist/nanosoc/nanosoc_matrix_ip.flist b/flist/nanosoc/nanosoc_matrix_ip.flist
index 3566bf5977c5b4d6cabc0d3f7ac2daae57f1c276..9aa7281f3e9475e384f8ae6a712ec6def0785e2c 100644
--- a/flist/nanosoc/nanosoc_matrix_ip.flist
+++ b/flist/nanosoc/nanosoc_matrix_ip.flist
@@ -16,6 +16,6 @@
 +libext+.v+.vlib
 
 // =============    NanoSoC Bus Matrix IP search path    =============
-+incdir+$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/gen_ahb_busmatrix/verilog/built/soclabs_4x7_AhbMatrix
++incdir+$(NANOSOC_TECH_DIR)/system/verilog/gen_ahb_busmatrix/verilog/built/soclabs_4x7_AhbMatrix
 
--y $(NANOSOC_TECH_DIR)/systems/nanososc/verilog/gen_ahb_busmatrix/verilog/built/soclabs_4x7_AhbMatrix
\ No newline at end of file
+-y $(NANOSOC_TECH_DIR)/system/src/nanosoc_ahb_busmatrix/verilog/nanosoc_ahb32_4x7_busmatrixgen_ahb_busmatrix/verilog/built/soclabs_ahb32_4x7_busmatrix
\ No newline at end of file
diff --git a/flist/nanosoc/nanosoc_tb.flist b/flist/nanosoc/nanosoc_tb.flist
index 6574d465f63210acad34c1268da743c732084e77..166bb2e0deaee0ca3a6c6b07e26356b9d8443f18 100644
--- a/flist/nanosoc/nanosoc_tb.flist
+++ b/flist/nanosoc/nanosoc_tb.flist
@@ -16,18 +16,18 @@
 +libext+.v+.vlib
 
 // =============    DMA-230 search path    =============
-+incdir+$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/
++incdir+$(NANOSOC_TECH_DIR)/system/verilog/
 
 // - Top-level testbench
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/tb_nanosoc.v
+$(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_tb.v
 
 // - Testbench components
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/cmsdk_clkreset.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/cmsdk_uart_capture.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/axi_stream_io_8_txd_from_file.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/ft1248x1_to_axi_streamio_v1_0.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/axi_stream_io_8_rxd_to_file.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/track_tb_iostream.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/ft1248x1_track.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/dma_log_to_file.v
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/aes128_log_to_file.v
\ No newline at end of file
+$(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_clkreset.v
+$(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_uart_capture.v
+
+$(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_axi_stream_io_8_txd_from_file.v
+$(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_ft1248x1_to_axi_streamio_v1_0.v
+$(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_axi_stream_io_8_rxd_to_file.v
+$(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_track_tb_iostream.v
+$(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_ft1248x1_track.v
+$(NANOSOC_TECH_DIR)/system/verif/verilog/nanosoc_dma_log_to_file.v
\ No newline at end of file
diff --git a/flist/nanosoc/nanosoc_test_io_ip.flist b/flist/nanosoc/nanosoc_test_io_ip.flist
index 022601c934131cd682ad4d215c1a1c76fd0f5532..d0094edd10b07046c68e9b5e4c3289f14e5dfe47 100644
--- a/flist/nanosoc/nanosoc_test_io_ip.flist
+++ b/flist/nanosoc/nanosoc_test_io_ip.flist
@@ -16,6 +16,6 @@
 +libext+.v+.vlib
 
 // =============    NanoSoC Chip Test Interface IP Filelists   =============
--f $(PROJECT_DIR)/flist/test_io/adp-control_ip.flist
--f $(PROJECT_DIR)/flist/test_io/ft1248_ip.flist
--f $(PROJECT_DIR)/flist/test_io/usrt_ip.flist
\ No newline at end of file
+$(NANOSOC_TECH_DIR)/system/test_io/verilog/nanosoc_adp_control_v1_0.v
+$(NANOSOC_TECH_DIR)/system/test_io/verilog/nanosoc_adp_manager.v
+$(NANOSOC_TECH_DIR)/system/test_io/verilog/nanosoc_ft1248_stream_io_v1_0.v
\ No newline at end of file
diff --git a/flist/test_io/adp-control_ip.flist b/flist/test_io/adp-control_ip.flist
deleted file mode 100644
index 2173341ea7a7717ff62699c797cb6867a83e2757..0000000000000000000000000000000000000000
--- a/flist/test_io/adp-control_ip.flist
+++ /dev/null
@@ -1,20 +0,0 @@
-//-----------------------------------------------------------------------------
-// NanoSoC ADP Control Filelist
-// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
-//
-// Contributors
-//
-// David Mapstone (d.a.mapstone@soton.ac.uk)
-//
-// Copyright � 2021-3, SoC Labs (www.soclabs.org)
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// Abstract : Verilog Command File for ADP Control IP
-//-----------------------------------------------------------------------------
-
-// ============= Verilog library extensions ===========
-+libext+.v+.vlib
-
-// =============    ADP Control search path    =============
-$(NANOSOC_TECH_DIR)/test_io/adp_control/verilog/ADPcontrol_v1_0.v
-$(NANOSOC_TECH_DIR)/test_io/adp_control/verilog/ADPmanager.v
\ No newline at end of file
diff --git a/flist/test_io/ft1248_ip.flist b/flist/test_io/ft1248_ip.flist
deleted file mode 100644
index f7442aa7bb0351119cd97e2146b9a1b5643a4ac3..0000000000000000000000000000000000000000
--- a/flist/test_io/ft1248_ip.flist
+++ /dev/null
@@ -1,19 +0,0 @@
-//-----------------------------------------------------------------------------
-// NanoSoC FT1248 VIP Filelist
-// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
-//
-// Contributors
-//
-// David Mapstone (d.a.mapstone@soton.ac.uk)
-//
-// Copyright � 2021-3, SoC Labs (www.soclabs.org)
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// Abstract : Verilog Command File for FT1248 IO VIP
-//-----------------------------------------------------------------------------
-
-// ============= Verilog library extensions ===========
-+libext+.v+.vlib
-
-// =============    FT1248 VIP search path    =============
-$(NANOSOC_TECH_DIR)/test_io/ft1248_stream_io/verilog/ft1248_stream_io_v1_0.v
\ No newline at end of file
diff --git a/flist/test_io/usrt_ip.flist b/flist/test_io/usrt_ip.flist
deleted file mode 100644
index 4558f3f712a7129e83cbe47fb0a184d31634616b..0000000000000000000000000000000000000000
--- a/flist/test_io/usrt_ip.flist
+++ /dev/null
@@ -1,19 +0,0 @@
-//-----------------------------------------------------------------------------
-// NanoSoC APB USRT Control Filelist
-// A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license.
-//
-// Contributors
-//
-// David Mapstone (d.a.mapstone@soton.ac.uk)
-//
-// Copyright � 2021-3, SoC Labs (www.soclabs.org)
-//-----------------------------------------------------------------------------
-//-----------------------------------------------------------------------------
-// Abstract : Verilog Command File for APB USRT IP
-//-----------------------------------------------------------------------------
-
-// ============= Verilog library extensions ===========
-+libext+.v+.vlib
-
-// =============   APB USRT search path    =============
-$(NANOSOC_TECH_DIR)/systems/nanososc/verilog/cmsdk_apb_usrt.v
\ No newline at end of file
diff --git a/nanosoc b/nanosoc
index ab2f30d5531ee4ea52b932317b5c223800c84798..8f599dbbb64ba2b39beea654dd211d7743f89f64 160000
--- a/nanosoc
+++ b/nanosoc
@@ -1 +1 @@
-Subproject commit ab2f30d5531ee4ea52b932317b5c223800c84798
+Subproject commit 8f599dbbb64ba2b39beea654dd211d7743f89f64
diff --git a/simulate/socsim/system_secworks_sha256.sh b/simulate/socsim/system_secworks_sha256.sh
index c537f4cfbf6725f0cf0a9a10ab792e2d4efeb669..339422ab1f358d67a4ada731db516083127f39f7 100755
--- a/simulate/socsim/system_secworks_sha256.sh
+++ b/simulate/socsim/system_secworks_sha256.sh
@@ -24,7 +24,7 @@ cd $PROJECT_DIR/simulate/sim/system_secworks_sha256
 # Compile Simulation
 # Call makefile in NanoSoC Repo with options
 echo ${2}
-make -C $NANOSOC_TECH_DIR/systems/mcu run_xm \
+make -C $NANOSOC_TECH_DIR/system run_xm \
     SIM_DIR=$SIM_DIR \
     ADP_FILE=$PROJECT_DIR/system/stimulus/adp_hash_stim.cmd \
     ${@:2}