diff --git a/verilog/rtl/Caravel_Top.v b/verilog/rtl/Top.v
similarity index 70%
rename from verilog/rtl/Caravel_Top.v
rename to verilog/rtl/Top.v
index 01429e9..80768b7 100644
--- a/verilog/rtl/Caravel_Top.v
+++ b/verilog/rtl/Top.v
@@ -245,6 +245,220 @@
   assign io_reqOut_bits_activeByteLane = io_wbMasterReceiver_bits_sel; // @[WishboneDevice.scala 26:40 WishboneDevice.scala 34:37 WishboneDevice.scala 58:37]
   assign io_reqOut_bits_isWrite = ~io_wbMasterReceiver_bits_we ? 1'h0 : io_wbMasterReceiver_bits_we; // @[WishboneDevice.scala 26:40 WishboneDevice.scala 35:30 WishboneDevice.scala 59:30]
 endmodule
+module SRAM1kb(
+  input         clock,
+  input         reset,
+  input         io_req_valid,
+  input  [31:0] io_req_bits_addrRequest,
+  input  [31:0] io_req_bits_dataRequest,
+  input  [3:0]  io_req_bits_activeByteLane,
+  input         io_req_bits_isWrite,
+  output        io_rsp_valid,
+  output [31:0] io_rsp_bits_dataResponse
+);
+`ifdef RANDOMIZE_REG_INIT
+  reg [31:0] _RAND_0;
+`endif // RANDOMIZE_REG_INIT
+  wire  sram_clk0; // @[SRAM1kb.scala 24:20]
+  wire  sram_csb0; // @[SRAM1kb.scala 24:20]
+  wire  sram_web0; // @[SRAM1kb.scala 24:20]
+  wire [3:0] sram_wmask0; // @[SRAM1kb.scala 24:20]
+  wire [9:0] sram_addr0; // @[SRAM1kb.scala 24:20]
+  wire [31:0] sram_din0; // @[SRAM1kb.scala 24:20]
+  wire [31:0] sram_dout0; // @[SRAM1kb.scala 24:20]
+  wire  sram_clk1; // @[SRAM1kb.scala 24:20]
+  wire  sram_csb1; // @[SRAM1kb.scala 24:20]
+  wire [9:0] sram_addr1; // @[SRAM1kb.scala 24:20]
+  wire [31:0] sram_dout1; // @[SRAM1kb.scala 24:20]
+  reg  validReg; // @[SRAM1kb.scala 16:25]
+  wire  _T_2 = io_req_valid & io_req_bits_isWrite; // @[SRAM1kb.scala 51:28]
+  wire  _GEN_0 = io_req_valid & io_req_bits_isWrite ? 1'h0 : 1'h1; // @[SRAM1kb.scala 51:52 SRAM1kb.scala 56:18 SRAM1kb.scala 29:16]
+  wire  _GEN_6 = io_req_valid & ~io_req_bits_isWrite | _T_2; // @[SRAM1kb.scala 42:46 SRAM1kb.scala 45:14]
+  sky130_sram_1kbyte_1rw1r_32x256_8 dccm ( // @[SRAM1kb.scala 24:20]
+    .clk0(sram_clk0),
+    .csb0(sram_csb0),
+    .web0(sram_web0),
+    .wmask0(sram_wmask0),
+    .addr0(sram_addr0),
+    .din0(sram_din0),
+    .dout0(sram_dout0),
+    .clk1(sram_clk1),
+    .csb1(sram_csb1),
+    .addr1(sram_addr1),
+    .dout1(sram_dout1)
+  );
+  assign io_rsp_valid = validReg; // @[SRAM1kb.scala 17:16]
+  assign io_rsp_bits_dataResponse = sram_dout0; // @[SRAM1kb.scala 42:46 SRAM1kb.scala 50:11]
+  assign sram_clk0 = clock; // @[SRAM1kb.scala 26:34]
+  assign sram_csb0 = io_req_valid & ~io_req_bits_isWrite ? 1'h0 : _GEN_0; // @[SRAM1kb.scala 42:46 SRAM1kb.scala 46:18]
+  assign sram_web0 = io_req_valid & ~io_req_bits_isWrite; // @[SRAM1kb.scala 42:21]
+  assign sram_wmask0 = io_req_bits_activeByteLane; // @[SRAM1kb.scala 51:52 SRAM1kb.scala 58:20]
+  assign sram_addr0 = io_req_bits_addrRequest[9:0];
+  assign sram_din0 = io_req_bits_dataRequest; // @[SRAM1kb.scala 51:52 SRAM1kb.scala 60:18]
+  assign sram_clk1 = 1'h0;
+  assign sram_csb1 = 1'h0;
+  assign sram_addr1 = 10'h0;
+  always @(posedge clock) begin
+    if (reset) begin // @[SRAM1kb.scala 16:25]
+      validReg <= 1'h0; // @[SRAM1kb.scala 16:25]
+    end else begin
+      validReg <= _GEN_6;
+    end
+  end
+// Register and memory initialization
+`ifdef RANDOMIZE_GARBAGE_ASSIGN
+`define RANDOMIZE
+`endif
+`ifdef RANDOMIZE_INVALID_ASSIGN
+`define RANDOMIZE
+`endif
+`ifdef RANDOMIZE_REG_INIT
+`define RANDOMIZE
+`endif
+`ifdef RANDOMIZE_MEM_INIT
+`define RANDOMIZE
+`endif
+`ifndef RANDOM
+`define RANDOM $random
+`endif
+`ifdef RANDOMIZE_MEM_INIT
+  integer initvar;
+`endif
+`ifndef SYNTHESIS
+`ifdef FIRRTL_BEFORE_INITIAL
+`FIRRTL_BEFORE_INITIAL
+`endif
+initial begin
+  `ifdef RANDOMIZE
+    `ifdef INIT_RANDOM
+      `INIT_RANDOM
+    `endif
+    `ifndef VERILATOR
+      `ifdef RANDOMIZE_DELAY
+        #`RANDOMIZE_DELAY begin end
+      `else
+        #0.002 begin end
+      `endif
+    `endif
+`ifdef RANDOMIZE_REG_INIT
+  _RAND_0 = {1{`RANDOM}};
+  validReg = _RAND_0[0:0];
+`endif // RANDOMIZE_REG_INIT
+  `endif // RANDOMIZE
+end // initial
+`ifdef FIRRTL_AFTER_INITIAL
+`FIRRTL_AFTER_INITIAL
+`endif
+`endif // SYNTHESIS
+endmodule
+module SramImem(
+  input         clock,
+  input         reset,
+  input         io_req_valid,
+  input  [31:0] io_req_bits_addrRequest,
+  input         io_req_bits_isWrite,
+  output        io_rsp_valid,
+  output [31:0] io_rsp_bits_dataResponse,
+  input         io_writeEnable,
+  input  [31:0] io_addrIn,
+  input  [31:0] io_dataIn
+);
+`ifdef RANDOMIZE_REG_INIT
+  reg [31:0] _RAND_0;
+`endif // RANDOMIZE_REG_INIT
+  wire  sram_clk0; // @[SramImem.scala 28:20]
+  wire  sram_csb0; // @[SramImem.scala 28:20]
+  wire  sram_web0; // @[SramImem.scala 28:20]
+  wire [3:0] sram_wmask0; // @[SramImem.scala 28:20]
+  wire [9:0] sram_addr0; // @[SramImem.scala 28:20]
+  wire [31:0] sram_din0; // @[SramImem.scala 28:20]
+  wire [31:0] sram_dout0; // @[SramImem.scala 28:20]
+  wire  sram_clk1; // @[SramImem.scala 28:20]
+  wire  sram_csb1; // @[SramImem.scala 28:20]
+  wire [9:0] sram_addr1; // @[SramImem.scala 28:20]
+  wire [31:0] sram_dout1; // @[SramImem.scala 28:20]
+  reg  validReg; // @[SramImem.scala 20:25]
+  wire  _T_2 = ~io_writeEnable; // @[SramImem.scala 55:15]
+  wire  _GEN_0 = ~io_writeEnable ? 1'h0 : 1'h1; // @[SramImem.scala 55:32 SramImem.scala 60:18 SramImem.scala 33:16]
+  wire  _GEN_6 = io_req_valid & ~io_req_bits_isWrite | _T_2; // @[SramImem.scala 46:46 SramImem.scala 49:14]
+  wire [31:0] _GEN_9 = io_req_valid & ~io_req_bits_isWrite ? io_req_bits_addrRequest : io_addrIn; // @[SramImem.scala 46:46 SramImem.scala 52:19]
+  sky130_sram_1kbyte_1rw1r_32x256_8 iccm ( // @[SramImem.scala 28:20]
+    .clk0(sram_clk0),
+    .csb0(sram_csb0),
+    .web0(sram_web0),
+    .wmask0(sram_wmask0),
+    .addr0(sram_addr0),
+    .din0(sram_din0),
+    .dout0(sram_dout0),
+    .clk1(sram_clk1),
+    .csb1(sram_csb1),
+    .addr1(sram_addr1),
+    .dout1(sram_dout1)
+  );
+  assign io_rsp_valid = validReg; // @[SramImem.scala 21:16]
+  assign io_rsp_bits_dataResponse = sram_dout0; // @[SramImem.scala 46:46 SramImem.scala 54:11]
+  assign sram_clk0 = clock; // @[SramImem.scala 30:34]
+  assign sram_csb0 = io_req_valid & ~io_req_bits_isWrite ? 1'h0 : _GEN_0; // @[SramImem.scala 46:46 SramImem.scala 50:18]
+  assign sram_web0 = io_req_valid & ~io_req_bits_isWrite | io_writeEnable; // @[SramImem.scala 46:46 SramImem.scala 51:18]
+  assign sram_wmask0 = 4'hf; // @[SramImem.scala 55:32 SramImem.scala 62:20]
+  assign sram_addr0 = _GEN_9[9:0];
+  assign sram_din0 = io_dataIn; // @[SramImem.scala 55:32 SramImem.scala 64:18]
+  assign sram_clk1 = 1'h0;
+  assign sram_csb1 = 1'h0;
+  assign sram_addr1 = 10'h0;
+  always @(posedge clock) begin
+    if (reset) begin // @[SramImem.scala 20:25]
+      validReg <= 1'h0; // @[SramImem.scala 20:25]
+    end else begin
+      validReg <= _GEN_6;
+    end
+  end
+// Register and memory initialization
+`ifdef RANDOMIZE_GARBAGE_ASSIGN
+`define RANDOMIZE
+`endif
+`ifdef RANDOMIZE_INVALID_ASSIGN
+`define RANDOMIZE
+`endif
+`ifdef RANDOMIZE_REG_INIT
+`define RANDOMIZE
+`endif
+`ifdef RANDOMIZE_MEM_INIT
+`define RANDOMIZE
+`endif
+`ifndef RANDOM
+`define RANDOM $random
+`endif
+`ifdef RANDOMIZE_MEM_INIT
+  integer initvar;
+`endif
+`ifndef SYNTHESIS
+`ifdef FIRRTL_BEFORE_INITIAL
+`FIRRTL_BEFORE_INITIAL
+`endif
+initial begin
+  `ifdef RANDOMIZE
+    `ifdef INIT_RANDOM
+      `INIT_RANDOM
+    `endif
+    `ifndef VERILATOR
+      `ifdef RANDOMIZE_DELAY
+        #`RANDOMIZE_DELAY begin end
+      `else
+        #0.002 begin end
+      `endif
+    `endif
+`ifdef RANDOMIZE_REG_INIT
+  _RAND_0 = {1{`RANDOM}};
+  validReg = _RAND_0[0:0];
+`endif // RANDOMIZE_REG_INIT
+  `endif // RANDOMIZE
+end // initial
+`ifdef FIRRTL_AFTER_INITIAL
+`FIRRTL_AFTER_INITIAL
+`endif
+`endif // SYNTHESIS
+endmodule
 module SubReg(
   input         clock,
   input         reset,
@@ -1008,10 +1222,10 @@
   output [31:0] io_hw2reg_intr_state_d_o
 );
   wire [31:0] _new_event_T_1 = io_reg2hw_intr_test_qe_i ? 32'hffffffff : 32'h0; // @[Bitwise.scala 72:12]
-  wire [31:0] _new_event_T_2 = _new_event_T_1 & io_reg2hw_intr_test_q_i; // @[IntrHardware.scala 26:54]
-  wire [31:0] new_event = _new_event_T_2 | io_event_intr_i; // @[IntrHardware.scala 26:80]
-  assign io_hw2reg_intr_state_de_o = |new_event; // @[IntrHardware.scala 27:45]
-  assign io_hw2reg_intr_state_d_o = new_event | io_reg2hw_intr_state_q_i; // @[IntrHardware.scala 28:41]
+  wire [31:0] _new_event_T_2 = _new_event_T_1 & io_reg2hw_intr_test_q_i; // @[IntrHardware.scala 25:54]
+  wire [31:0] new_event = _new_event_T_2 | io_event_intr_i; // @[IntrHardware.scala 25:80]
+  assign io_hw2reg_intr_state_de_o = |new_event; // @[IntrHardware.scala 26:45]
+  assign io_hw2reg_intr_state_d_o = new_event | io_reg2hw_intr_state_q_i; // @[IntrHardware.scala 27:41]
 endmodule
 module Gpio(
   input         clock,
@@ -1292,112 +1506,6 @@
 `endif
 `endif // SYNTHESIS
 endmodule
-module SRAM1kb(
-  input         clock,
-  input         reset,
-  input         io_req_valid,
-  input  [31:0] io_req_bits_addrRequest,
-  input  [31:0] io_req_bits_dataRequest,
-  input  [3:0]  io_req_bits_activeByteLane,
-  input         io_req_bits_isWrite,
-  output        io_rsp_valid,
-  output [31:0] io_rsp_bits_dataResponse
-);
-`ifdef RANDOMIZE_REG_INIT
-  reg [31:0] _RAND_0;
-`endif // RANDOMIZE_REG_INIT
-  wire  sram_clk0; // @[SRAM1kb.scala 26:20]
-  wire  sram_csb0; // @[SRAM1kb.scala 26:20]
-  wire  sram_web0; // @[SRAM1kb.scala 26:20]
-  wire [3:0] sram_wmask0; // @[SRAM1kb.scala 26:20]
-  wire [7:0] sram_addr0; // @[SRAM1kb.scala 26:20]
-  wire [31:0] sram_din0; // @[SRAM1kb.scala 26:20]
-  wire [31:0] sram_dout0; // @[SRAM1kb.scala 26:20]
-  wire  sram_clk1; // @[SRAM1kb.scala 26:20]
-  wire  sram_csb1; // @[SRAM1kb.scala 26:20]
-  wire [7:0] sram_addr1; // @[SRAM1kb.scala 26:20]
-  wire [31:0] sram_dout1; // @[SRAM1kb.scala 26:20]
-  reg  validReg; // @[SRAM1kb.scala 18:25]
-  wire  _T_2 = io_req_valid & io_req_bits_isWrite; // @[SRAM1kb.scala 53:28]
-  wire  _GEN_0 = io_req_valid & io_req_bits_isWrite ? 1'h0 : 1'h1; // @[SRAM1kb.scala 53:52 SRAM1kb.scala 58:18 SRAM1kb.scala 31:16]
-  wire  _GEN_6 = io_req_valid & ~io_req_bits_isWrite | _T_2; // @[SRAM1kb.scala 44:46 SRAM1kb.scala 47:14]
-  sky130_sram_1kbyte_1rw1r_32x256_8 sram ( // @[SRAM1kb.scala 26:20]
-    .clk0(sram_clk0),
-    .csb0(sram_csb0),
-    .web0(sram_web0),
-    .wmask0(sram_wmask0),
-    .addr0(sram_addr0),
-    .din0(sram_din0),
-    .dout0(sram_dout0),
-    .clk1(sram_clk1),
-    .csb1(sram_csb1),
-    .addr1(sram_addr1),
-    .dout1(sram_dout1)
-  );
-  assign io_rsp_valid = validReg; // @[SRAM1kb.scala 19:16]
-  assign io_rsp_bits_dataResponse = sram_dout0; // @[SRAM1kb.scala 44:46 SRAM1kb.scala 52:11]
-  assign sram_clk0 = clock; // @[SRAM1kb.scala 28:34]
-  assign sram_csb0 = io_req_valid & ~io_req_bits_isWrite ? 1'h0 : _GEN_0; // @[SRAM1kb.scala 44:46 SRAM1kb.scala 48:18]
-  assign sram_web0 = io_req_valid & ~io_req_bits_isWrite; // @[SRAM1kb.scala 44:21]
-  assign sram_wmask0 = io_req_bits_activeByteLane; // @[SRAM1kb.scala 53:52 SRAM1kb.scala 60:20]
-  assign sram_addr0 = io_req_bits_addrRequest[7:0];
-  assign sram_din0 = io_req_bits_dataRequest; // @[SRAM1kb.scala 53:52 SRAM1kb.scala 62:18]
-  assign sram_clk1 = 1'h0;
-  assign sram_csb1 = 1'h0;
-  assign sram_addr1 = 8'h0;
-  always @(posedge clock) begin
-    if (reset) begin // @[SRAM1kb.scala 18:25]
-      validReg <= 1'h0; // @[SRAM1kb.scala 18:25]
-    end else begin
-      validReg <= _GEN_6;
-    end
-  end
-// Register and memory initialization
-`ifdef RANDOMIZE_GARBAGE_ASSIGN
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_INVALID_ASSIGN
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_REG_INIT
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_MEM_INIT
-`define RANDOMIZE
-`endif
-`ifndef RANDOM
-`define RANDOM $random
-`endif
-`ifdef RANDOMIZE_MEM_INIT
-  integer initvar;
-`endif
-`ifndef SYNTHESIS
-`ifdef FIRRTL_BEFORE_INITIAL
-`FIRRTL_BEFORE_INITIAL
-`endif
-initial begin
-  `ifdef RANDOMIZE
-    `ifdef INIT_RANDOM
-      `INIT_RANDOM
-    `endif
-    `ifndef VERILATOR
-      `ifdef RANDOMIZE_DELAY
-        #`RANDOMIZE_DELAY begin end
-      `else
-        #0.002 begin end
-      `endif
-    `endif
-`ifdef RANDOMIZE_REG_INIT
-  _RAND_0 = {1{`RANDOM}};
-  validReg = _RAND_0[0:0];
-`endif // RANDOMIZE_REG_INIT
-  `endif // RANDOMIZE
-end // initial
-`ifdef FIRRTL_AFTER_INITIAL
-`FIRRTL_AFTER_INITIAL
-`endif
-`endif // SYNTHESIS
-endmodule
 module WishboneErr(
   input         clock,
   input         reset,
@@ -1481,7 +1589,6 @@
 module InstructionFetch(
   input  [31:0] io_address,
   output [31:0] io_instruction,
-  input         io_stall,
   input         io_coreInstrReq_ready,
   output        io_coreInstrReq_valid,
   output [31:0] io_coreInstrReq_bits_addrRequest,
@@ -1489,7 +1596,7 @@
   input  [31:0] io_coreInstrResp_bits_dataResponse
 );
   assign io_instruction = io_coreInstrResp_valid ? io_coreInstrResp_bits_dataResponse : 32'h0; // @[InstructionFetch.scala 26:24]
-  assign io_coreInstrReq_valid = io_stall ? 1'h0 : io_coreInstrReq_ready; // @[InstructionFetch.scala 24:31]
+  assign io_coreInstrReq_valid = io_coreInstrReq_ready; // @[InstructionFetch.scala 24:31]
   assign io_coreInstrReq_bits_addrRequest = {{2'd0}, io_address[31:2]}; // @[InstructionFetch.scala 23:50]
 endmodule
 module HazardUnit(
@@ -1540,54 +1647,54 @@
   output [1:0]  io_jump,
   output [1:0]  io_aluSrc1
 );
-  wire [31:0] _T = io_in & 32'h7f; // @[Lookup.scala 31:38]
-  wire  _T_1 = 32'h33 == _T; // @[Lookup.scala 31:38]
-  wire  _T_3 = 32'h13 == _T; // @[Lookup.scala 31:38]
-  wire  _T_5 = 32'h3 == _T; // @[Lookup.scala 31:38]
-  wire  _T_7 = 32'h23 == _T; // @[Lookup.scala 31:38]
-  wire  _T_9 = 32'h63 == _T; // @[Lookup.scala 31:38]
-  wire  _T_11 = 32'h37 == _T; // @[Lookup.scala 31:38]
-  wire  _T_13 = 32'h17 == _T; // @[Lookup.scala 31:38]
-  wire  _T_15 = 32'h6f == _T; // @[Lookup.scala 31:38]
-  wire  _T_17 = 32'h67 == _T; // @[Lookup.scala 31:38]
-  wire  _T_23 = _T_7 ? 1'h0 : _T_9; // @[Lookup.scala 33:37]
-  wire  _T_24 = _T_5 ? 1'h0 : _T_23; // @[Lookup.scala 33:37]
-  wire  _T_25 = _T_3 ? 1'h0 : _T_24; // @[Lookup.scala 33:37]
-  wire [1:0] _T_26 = _T_17 ? 2'h2 : 2'h0; // @[Lookup.scala 33:37]
-  wire [1:0] _T_27 = _T_15 ? 2'h2 : _T_26; // @[Lookup.scala 33:37]
-  wire [1:0] _T_28 = _T_13 ? 2'h0 : _T_27; // @[Lookup.scala 33:37]
-  wire [1:0] _T_29 = _T_11 ? 2'h0 : _T_28; // @[Lookup.scala 33:37]
-  wire [1:0] _T_30 = _T_9 ? 2'h0 : _T_29; // @[Lookup.scala 33:37]
-  wire [1:0] _T_31 = _T_7 ? 2'h0 : _T_30; // @[Lookup.scala 33:37]
-  wire [1:0] _T_32 = _T_5 ? 2'h1 : _T_31; // @[Lookup.scala 33:37]
-  wire [1:0] _T_33 = _T_3 ? 2'h0 : _T_32; // @[Lookup.scala 33:37]
-  wire  _T_38 = _T_9 ? 1'h0 : _T_11 | (_T_13 | (_T_15 | _T_17)); // @[Lookup.scala 33:37]
-  wire  _T_39 = _T_7 ? 1'h0 : _T_38; // @[Lookup.scala 33:37]
-  wire  _T_49 = _T_3 ? 1'h0 : _T_5; // @[Lookup.scala 33:37]
-  wire  _T_56 = _T_5 ? 1'h0 : _T_7; // @[Lookup.scala 33:37]
-  wire  _T_57 = _T_3 ? 1'h0 : _T_56; // @[Lookup.scala 33:37]
-  wire [1:0] _T_67 = _T_15 ? 2'h1 : _T_26; // @[Lookup.scala 33:37]
-  wire [1:0] _T_68 = _T_13 ? 2'h0 : _T_67; // @[Lookup.scala 33:37]
-  wire [1:0] _T_69 = _T_11 ? 2'h0 : _T_68; // @[Lookup.scala 33:37]
-  wire [1:0] _T_70 = _T_9 ? 2'h0 : _T_69; // @[Lookup.scala 33:37]
-  wire [1:0] _T_71 = _T_7 ? 2'h0 : _T_70; // @[Lookup.scala 33:37]
-  wire [1:0] _T_72 = _T_5 ? 2'h0 : _T_71; // @[Lookup.scala 33:37]
-  wire [1:0] _T_73 = _T_3 ? 2'h0 : _T_72; // @[Lookup.scala 33:37]
-  wire [1:0] _T_81 = _T_3 ? 2'h2 : 2'h0; // @[Lookup.scala 33:37]
-  wire [1:0] _T_85 = _T_11 ? 2'h2 : {{1'd0}, _T_13}; // @[Lookup.scala 33:37]
-  wire [1:0] _T_86 = _T_9 ? 2'h0 : _T_85; // @[Lookup.scala 33:37]
-  wire [1:0] _T_87 = _T_7 ? 2'h0 : _T_86; // @[Lookup.scala 33:37]
-  wire [1:0] _T_88 = _T_5 ? 2'h0 : _T_87; // @[Lookup.scala 33:37]
-  wire [1:0] _T_89 = _T_3 ? 2'h0 : _T_88; // @[Lookup.scala 33:37]
-  assign io_aluSrc = _T_1 | _T_25; // @[Lookup.scala 33:37]
-  assign io_memToReg = _T_1 ? 2'h0 : _T_33; // @[Lookup.scala 33:37]
-  assign io_regWrite = _T_1 | (_T_3 | (_T_5 | _T_39)); // @[Lookup.scala 33:37]
-  assign io_memRead = _T_1 ? 1'h0 : _T_49; // @[Lookup.scala 33:37]
-  assign io_memWrite = _T_1 ? 1'h0 : _T_57; // @[Lookup.scala 33:37]
-  assign io_branch = _T_1 ? 1'h0 : _T_25; // @[Lookup.scala 33:37]
-  assign io_aluOp = _T_1 ? 2'h2 : _T_81; // @[Lookup.scala 33:37]
-  assign io_jump = _T_1 ? 2'h0 : _T_73; // @[Lookup.scala 33:37]
-  assign io_aluSrc1 = _T_1 ? 2'h0 : _T_89; // @[Lookup.scala 33:37]
+  wire [31:0] _signals_T = io_in & 32'h7f; // @[Lookup.scala 31:38]
+  wire  _signals_T_1 = 32'h33 == _signals_T; // @[Lookup.scala 31:38]
+  wire  _signals_T_3 = 32'h13 == _signals_T; // @[Lookup.scala 31:38]
+  wire  _signals_T_5 = 32'h3 == _signals_T; // @[Lookup.scala 31:38]
+  wire  _signals_T_7 = 32'h23 == _signals_T; // @[Lookup.scala 31:38]
+  wire  _signals_T_9 = 32'h63 == _signals_T; // @[Lookup.scala 31:38]
+  wire  _signals_T_11 = 32'h37 == _signals_T; // @[Lookup.scala 31:38]
+  wire  _signals_T_13 = 32'h17 == _signals_T; // @[Lookup.scala 31:38]
+  wire  _signals_T_15 = 32'h6f == _signals_T; // @[Lookup.scala 31:38]
+  wire  _signals_T_17 = 32'h67 == _signals_T; // @[Lookup.scala 31:38]
+  wire  _signals_T_23 = _signals_T_7 ? 1'h0 : _signals_T_9; // @[Lookup.scala 33:37]
+  wire  _signals_T_24 = _signals_T_5 ? 1'h0 : _signals_T_23; // @[Lookup.scala 33:37]
+  wire  _signals_T_25 = _signals_T_3 ? 1'h0 : _signals_T_24; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_26 = _signals_T_17 ? 2'h2 : 2'h0; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_27 = _signals_T_15 ? 2'h2 : _signals_T_26; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_28 = _signals_T_13 ? 2'h0 : _signals_T_27; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_29 = _signals_T_11 ? 2'h0 : _signals_T_28; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_30 = _signals_T_9 ? 2'h0 : _signals_T_29; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_31 = _signals_T_7 ? 2'h0 : _signals_T_30; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_32 = _signals_T_5 ? 2'h1 : _signals_T_31; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_33 = _signals_T_3 ? 2'h0 : _signals_T_32; // @[Lookup.scala 33:37]
+  wire  _signals_T_38 = _signals_T_9 ? 1'h0 : _signals_T_11 | (_signals_T_13 | (_signals_T_15 | _signals_T_17)); // @[Lookup.scala 33:37]
+  wire  _signals_T_39 = _signals_T_7 ? 1'h0 : _signals_T_38; // @[Lookup.scala 33:37]
+  wire  _signals_T_49 = _signals_T_3 ? 1'h0 : _signals_T_5; // @[Lookup.scala 33:37]
+  wire  _signals_T_56 = _signals_T_5 ? 1'h0 : _signals_T_7; // @[Lookup.scala 33:37]
+  wire  _signals_T_57 = _signals_T_3 ? 1'h0 : _signals_T_56; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_67 = _signals_T_15 ? 2'h1 : _signals_T_26; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_68 = _signals_T_13 ? 2'h0 : _signals_T_67; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_69 = _signals_T_11 ? 2'h0 : _signals_T_68; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_70 = _signals_T_9 ? 2'h0 : _signals_T_69; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_71 = _signals_T_7 ? 2'h0 : _signals_T_70; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_72 = _signals_T_5 ? 2'h0 : _signals_T_71; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_73 = _signals_T_3 ? 2'h0 : _signals_T_72; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_81 = _signals_T_3 ? 2'h2 : 2'h0; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_85 = _signals_T_11 ? 2'h2 : {{1'd0}, _signals_T_13}; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_86 = _signals_T_9 ? 2'h0 : _signals_T_85; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_87 = _signals_T_7 ? 2'h0 : _signals_T_86; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_88 = _signals_T_5 ? 2'h0 : _signals_T_87; // @[Lookup.scala 33:37]
+  wire [1:0] _signals_T_89 = _signals_T_3 ? 2'h0 : _signals_T_88; // @[Lookup.scala 33:37]
+  assign io_aluSrc = _signals_T_1 | _signals_T_25; // @[Lookup.scala 33:37]
+  assign io_memToReg = _signals_T_1 ? 2'h0 : _signals_T_33; // @[Lookup.scala 33:37]
+  assign io_regWrite = _signals_T_1 | (_signals_T_3 | (_signals_T_5 | _signals_T_39)); // @[Lookup.scala 33:37]
+  assign io_memRead = _signals_T_1 ? 1'h0 : _signals_T_49; // @[Lookup.scala 33:37]
+  assign io_memWrite = _signals_T_1 ? 1'h0 : _signals_T_57; // @[Lookup.scala 33:37]
+  assign io_branch = _signals_T_1 ? 1'h0 : _signals_T_25; // @[Lookup.scala 33:37]
+  assign io_aluOp = _signals_T_1 ? 2'h2 : _signals_T_81; // @[Lookup.scala 33:37]
+  assign io_jump = _signals_T_1 ? 2'h0 : _signals_T_73; // @[Lookup.scala 33:37]
+  assign io_aluSrc1 = _signals_T_1 ? 2'h0 : _signals_T_89; // @[Lookup.scala 33:37]
 endmodule
 module Registers(
   input         clock,
@@ -2070,33 +2177,33 @@
 );
   wire [6:0] opcode = io_instruction[6:0]; // @[ImmediateGen.scala 11:30]
   wire  _T_10 = opcode == 7'h3 | opcode == 7'hf | opcode == 7'h13 | opcode == 7'h1b | opcode == 7'h67 | opcode == 7'h73; // @[ImmediateGen.scala 15:97]
-  wire [11:0] lo = io_instruction[31:20]; // @[ImmediateGen.scala 17:31]
-  wire [19:0] hi = lo[11] ? 20'hfffff : 20'h0; // @[Bitwise.scala 72:12]
-  wire [31:0] _T_13 = {hi,lo}; // @[Cat.scala 30:58]
-  wire [19:0] hi_1 = io_instruction[31:12]; // @[ImmediateGen.scala 24:33]
-  wire [31:0] _T_17 = {hi_1,12'h0}; // @[Cat.scala 30:58]
-  wire [6:0] hi_2 = io_instruction[31:25]; // @[ImmediateGen.scala 30:37]
-  wire [4:0] lo_2 = io_instruction[11:7]; // @[ImmediateGen.scala 30:61]
-  wire [11:0] lo_3 = {hi_2,lo_2}; // @[Cat.scala 30:58]
-  wire [19:0] hi_3 = lo_3[11] ? 20'hfffff : 20'h0; // @[Bitwise.scala 72:12]
-  wire [31:0] _T_21 = {hi_3,hi_2,lo_2}; // @[Cat.scala 30:58]
-  wire  hi_hi = io_instruction[31]; // @[ImmediateGen.scala 37:23]
-  wire  hi_lo = io_instruction[7]; // @[ImmediateGen.scala 38:23]
-  wire [5:0] lo_hi = io_instruction[30:25]; // @[ImmediateGen.scala 39:23]
-  wire [3:0] lo_lo = io_instruction[11:8]; // @[ImmediateGen.scala 40:23]
-  wire [11:0] hi_lo_1 = {hi_hi,hi_lo,lo_hi,lo_lo}; // @[Cat.scala 30:58]
-  wire [18:0] hi_hi_1 = hi_lo_1[11] ? 19'h7ffff : 19'h0; // @[Bitwise.scala 72:12]
-  wire [31:0] _T_25 = {hi_hi_1,hi_hi,hi_lo,lo_hi,lo_lo,1'h0}; // @[Cat.scala 30:58]
-  wire [7:0] hi_lo_2 = io_instruction[19:12]; // @[ImmediateGen.scala 50:21]
-  wire  lo_hi_1 = io_instruction[20]; // @[ImmediateGen.scala 51:21]
-  wire [9:0] lo_lo_1 = io_instruction[30:21]; // @[ImmediateGen.scala 52:21]
-  wire [19:0] hi_lo_3 = {hi_hi,hi_lo_2,lo_hi_1,lo_lo_1}; // @[Cat.scala 30:58]
-  wire [10:0] hi_hi_3 = hi_lo_3[19] ? 11'h7ff : 11'h0; // @[Bitwise.scala 72:12]
-  wire [31:0] _T_28 = {hi_hi_3,hi_hi,hi_lo_2,lo_hi_1,lo_lo_1,1'h0}; // @[Cat.scala 30:58]
-  wire [31:0] _GEN_0 = opcode == 7'h63 ? _T_25 : _T_28; // @[ImmediateGen.scala 35:32 ImmediateGen.scala 43:14 ImmediateGen.scala 55:12]
-  wire [31:0] _GEN_1 = opcode == 7'h23 ? _T_21 : _GEN_0; // @[ImmediateGen.scala 29:32 ImmediateGen.scala 32:14]
-  wire [31:0] _GEN_2 = opcode == 7'h17 | opcode == 7'h37 ? _T_17 : _GEN_1; // @[ImmediateGen.scala 23:51 ImmediateGen.scala 26:14]
-  assign io_out = _T_10 ? _T_13 : _GEN_2; // @[ImmediateGen.scala 16:5 ImmediateGen.scala 19:12]
+  wire [11:0] ext_i_lo = io_instruction[31:20]; // @[ImmediateGen.scala 17:31]
+  wire [19:0] ext_i_hi = ext_i_lo[11] ? 20'hfffff : 20'h0; // @[Bitwise.scala 72:12]
+  wire [31:0] ext_i = {ext_i_hi,ext_i_lo}; // @[Cat.scala 30:58]
+  wire [19:0] ext_u_hi = io_instruction[31:12]; // @[ImmediateGen.scala 24:33]
+  wire [31:0] ext_u = {ext_u_hi,12'h0}; // @[Cat.scala 30:58]
+  wire [6:0] imm_s_hi = io_instruction[31:25]; // @[ImmediateGen.scala 30:37]
+  wire [4:0] imm_s_lo = io_instruction[11:7]; // @[ImmediateGen.scala 30:61]
+  wire [11:0] ext_s_lo = {imm_s_hi,imm_s_lo}; // @[Cat.scala 30:58]
+  wire [19:0] ext_s_hi = ext_s_lo[11] ? 20'hfffff : 20'h0; // @[Bitwise.scala 72:12]
+  wire [31:0] ext_s = {ext_s_hi,imm_s_hi,imm_s_lo}; // @[Cat.scala 30:58]
+  wire  imm_sb_hi_hi = io_instruction[31]; // @[ImmediateGen.scala 37:23]
+  wire  imm_sb_hi_lo = io_instruction[7]; // @[ImmediateGen.scala 38:23]
+  wire [5:0] imm_sb_lo_hi = io_instruction[30:25]; // @[ImmediateGen.scala 39:23]
+  wire [3:0] imm_sb_lo_lo = io_instruction[11:8]; // @[ImmediateGen.scala 40:23]
+  wire [11:0] ext_sb_hi_lo = {imm_sb_hi_hi,imm_sb_hi_lo,imm_sb_lo_hi,imm_sb_lo_lo}; // @[Cat.scala 30:58]
+  wire [18:0] ext_sb_hi_hi = ext_sb_hi_lo[11] ? 19'h7ffff : 19'h0; // @[Bitwise.scala 72:12]
+  wire [31:0] ext_sb = {ext_sb_hi_hi,imm_sb_hi_hi,imm_sb_hi_lo,imm_sb_lo_hi,imm_sb_lo_lo,1'h0}; // @[Cat.scala 30:58]
+  wire [7:0] imm_uj_hi_lo = io_instruction[19:12]; // @[ImmediateGen.scala 50:21]
+  wire  imm_uj_lo_hi = io_instruction[20]; // @[ImmediateGen.scala 51:21]
+  wire [9:0] imm_uj_lo_lo = io_instruction[30:21]; // @[ImmediateGen.scala 52:21]
+  wire [19:0] ext_uj_hi_lo = {imm_sb_hi_hi,imm_uj_hi_lo,imm_uj_lo_hi,imm_uj_lo_lo}; // @[Cat.scala 30:58]
+  wire [10:0] ext_uj_hi_hi = ext_uj_hi_lo[19] ? 11'h7ff : 11'h0; // @[Bitwise.scala 72:12]
+  wire [31:0] ext_uj = {ext_uj_hi_hi,imm_sb_hi_hi,imm_uj_hi_lo,imm_uj_lo_hi,imm_uj_lo_lo,1'h0}; // @[Cat.scala 30:58]
+  wire [31:0] _GEN_0 = opcode == 7'h63 ? ext_sb : ext_uj; // @[ImmediateGen.scala 35:32 ImmediateGen.scala 43:14 ImmediateGen.scala 55:12]
+  wire [31:0] _GEN_1 = opcode == 7'h23 ? ext_s : _GEN_0; // @[ImmediateGen.scala 29:32 ImmediateGen.scala 32:14]
+  wire [31:0] _GEN_2 = opcode == 7'h17 | opcode == 7'h37 ? ext_u : _GEN_1; // @[ImmediateGen.scala 23:51 ImmediateGen.scala 26:14]
+  assign io_out = _T_10 ? ext_i : _GEN_2; // @[ImmediateGen.scala 16:5 ImmediateGen.scala 19:12]
 endmodule
 module BranchUnit(
   input         io_branch,
@@ -2107,15 +2214,15 @@
   output        io_taken
 );
   wire  _T = 3'h0 == io_funct3; // @[Conditional.scala 37:30]
-  wire  _T_2 = 3'h1 == io_funct3; // @[Conditional.scala 37:30]
-  wire  _T_4 = 3'h4 == io_funct3; // @[Conditional.scala 37:30]
-  wire  _T_8 = 3'h5 == io_funct3; // @[Conditional.scala 37:30]
-  wire  _T_12 = 3'h6 == io_funct3; // @[Conditional.scala 37:30]
-  wire  _T_15 = io_rd1 >= io_rd2; // @[BranchUnit.scala 28:32]
-  wire  _GEN_1 = _T_12 ? io_rd1 < io_rd2 : _T_15; // @[Conditional.scala 39:67 BranchUnit.scala 27:21]
-  wire  _GEN_2 = _T_8 ? $signed(io_rd1) >= $signed(io_rd2) : _GEN_1; // @[Conditional.scala 39:67 BranchUnit.scala 26:21]
-  wire  _GEN_3 = _T_4 ? $signed(io_rd1) < $signed(io_rd2) : _GEN_2; // @[Conditional.scala 39:67 BranchUnit.scala 25:21]
-  wire  _GEN_4 = _T_2 ? io_rd1 != io_rd2 : _GEN_3; // @[Conditional.scala 39:67 BranchUnit.scala 24:21]
+  wire  _T_1 = 3'h1 == io_funct3; // @[Conditional.scala 37:30]
+  wire  _T_2 = 3'h4 == io_funct3; // @[Conditional.scala 37:30]
+  wire  _T_3 = 3'h5 == io_funct3; // @[Conditional.scala 37:30]
+  wire  _T_4 = 3'h6 == io_funct3; // @[Conditional.scala 37:30]
+  wire  _check_T_9 = io_rd1 >= io_rd2; // @[BranchUnit.scala 28:32]
+  wire  _GEN_1 = _T_4 ? io_rd1 < io_rd2 : _check_T_9; // @[Conditional.scala 39:67 BranchUnit.scala 27:21]
+  wire  _GEN_2 = _T_3 ? $signed(io_rd1) >= $signed(io_rd2) : _GEN_1; // @[Conditional.scala 39:67 BranchUnit.scala 26:21]
+  wire  _GEN_3 = _T_2 ? $signed(io_rd1) < $signed(io_rd2) : _GEN_2; // @[Conditional.scala 39:67 BranchUnit.scala 25:21]
+  wire  _GEN_4 = _T_1 ? io_rd1 != io_rd2 : _GEN_3; // @[Conditional.scala 39:67 BranchUnit.scala 24:21]
   wire  check = _T ? io_rd1 == io_rd2 : _GEN_4; // @[Conditional.scala 40:58 BranchUnit.scala 23:21]
   assign io_taken = check & io_branch & io_take_branch; // @[BranchUnit.scala 31:33]
 endmodule
@@ -2203,19 +2310,19 @@
   wire  bu_io_taken; // @[InstructionDecode.scala 143:18]
   wire [31:0] _GEN_2 = io_id_instruction[19:15] == 5'h0 ? 32'h0 : io_writeData; // @[InstructionDecode.scala 98:30 InstructionDecode.scala 99:20 InstructionDecode.scala 101:20]
   wire [31:0] _GEN_4 = io_id_instruction[24:20] == 5'h0 ? 32'h0 : io_writeData; // @[InstructionDecode.scala 107:30 InstructionDecode.scala 108:20 InstructionDecode.scala 110:20]
-  wire  _T_11 = io_id_instruction[19:15] == io_ex_mem_ins[11:7]; // @[InstructionDecode.scala 125:20]
-  wire  _T_13 = io_id_instruction[19:15] == io_mem_wb_ins[11:7]; // @[InstructionDecode.scala 127:26]
+  wire  _T_9 = io_id_instruction[19:15] == io_ex_mem_ins[11:7]; // @[InstructionDecode.scala 125:20]
+  wire  _T_11 = io_id_instruction[19:15] == io_mem_wb_ins[11:7]; // @[InstructionDecode.scala 127:26]
   wire [31:0] _GEN_6 = io_id_instruction[19:15] == io_mem_wb_ins[11:7] ? io_mem_wb_result : io_readData1; // @[InstructionDecode.scala 127:52 InstructionDecode.scala 128:14 InstructionDecode.scala 131:14]
   wire [31:0] _GEN_8 = io_id_instruction[24:20] == io_mem_wb_ins[11:7] ? io_mem_wb_result : io_readData2; // @[InstructionDecode.scala 135:52 InstructionDecode.scala 136:14 InstructionDecode.scala 139:14]
-  wire  _T_20 = io_id_instruction[19:15] == io_ex_ins[11:7]; // @[InstructionDecode.scala 153:22]
-  wire [31:0] _GEN_10 = _T_20 ? io_ex_result : io_readData1; // @[InstructionDecode.scala 159:47 InstructionDecode.scala 160:14 InstructionDecode.scala 162:16]
-  wire [31:0] _GEN_11 = _T_13 ? io_mem_wb_result : _GEN_10; // @[InstructionDecode.scala 157:52 InstructionDecode.scala 158:14]
-  wire [31:0] _GEN_12 = _T_11 ? io_ex_mem_result : _GEN_11; // @[InstructionDecode.scala 155:54 InstructionDecode.scala 156:14]
+  wire  _T_17 = io_id_instruction[19:15] == io_ex_ins[11:7]; // @[InstructionDecode.scala 153:22]
+  wire [31:0] _GEN_10 = _T_17 ? io_ex_result : io_readData1; // @[InstructionDecode.scala 159:47 InstructionDecode.scala 160:14 InstructionDecode.scala 162:16]
+  wire [31:0] _GEN_11 = _T_11 ? io_mem_wb_result : _GEN_10; // @[InstructionDecode.scala 157:52 InstructionDecode.scala 158:14]
+  wire [31:0] _GEN_12 = _T_9 ? io_ex_mem_result : _GEN_11; // @[InstructionDecode.scala 155:54 InstructionDecode.scala 156:14]
   wire [31:0] j_offset = io_id_instruction[19:15] == io_ex_ins[11:7] ? io_ex_result : _GEN_12; // @[InstructionDecode.scala 153:43 InstructionDecode.scala 154:16]
-  wire [31:0] _T_29 = io_pcAddress + io_immediate; // @[InstructionDecode.scala 167:37]
-  wire [31:0] _T_32 = j_offset + io_immediate; // @[InstructionDecode.scala 169:35]
-  wire [31:0] _T_34 = io_pcAddress + immediate_io_out; // @[InstructionDecode.scala 172:39]
-  wire [31:0] _GEN_14 = io_ctl_jump == 2'h2 ? _T_32 : _T_34; // @[InstructionDecode.scala 168:35 InstructionDecode.scala 169:23 InstructionDecode.scala 172:23]
+  wire [31:0] _io_pcPlusOffset_T_1 = io_pcAddress + io_immediate; // @[InstructionDecode.scala 167:37]
+  wire [31:0] _io_pcPlusOffset_T_3 = j_offset + io_immediate; // @[InstructionDecode.scala 169:35]
+  wire [31:0] _io_pcPlusOffset_T_5 = io_pcAddress + immediate_io_out; // @[InstructionDecode.scala 172:39]
+  wire [31:0] _GEN_14 = io_ctl_jump == 2'h2 ? _io_pcPlusOffset_T_3 : _io_pcPlusOffset_T_5; // @[InstructionDecode.scala 168:35 InstructionDecode.scala 169:23 InstructionDecode.scala 172:23]
   HazardUnit hdu ( // @[InstructionDecode.scala 51:19]
     .io_id_ex_memRead(hdu_io_id_ex_memRead),
     .io_ex_mem_memRead(hdu_io_ex_mem_memRead),
@@ -2286,7 +2393,7 @@
   assign io_hdu_pcWrite = hdu_io_pc_write; // @[InstructionDecode.scala 63:18]
   assign io_hdu_if_reg_write = hdu_io_if_reg_write; // @[InstructionDecode.scala 64:23]
   assign io_pcSrc = bu_io_taken | io_ctl_jump != 2'h0; // @[InstructionDecode.scala 175:20]
-  assign io_pcPlusOffset = io_ctl_jump == 2'h1 ? _T_29 : _GEN_14; // @[InstructionDecode.scala 166:29 InstructionDecode.scala 167:21]
+  assign io_pcPlusOffset = io_ctl_jump == 2'h1 ? _io_pcPlusOffset_T_1 : _GEN_14; // @[InstructionDecode.scala 166:29 InstructionDecode.scala 167:21]
   assign io_ifid_flush = hdu_io_ifid_flush; // @[InstructionDecode.scala 182:17]
   assign hdu_io_id_ex_memRead = io_id_ex_mem_read; // @[InstructionDecode.scala 53:24]
   assign hdu_io_ex_mem_memRead = io_ex_mem_mem_read; // @[InstructionDecode.scala 55:25]
@@ -2319,38 +2426,38 @@
   input  [3:0]  io_aluCtl,
   output [31:0] io_result
 );
-  wire  _T = io_aluCtl == 4'h0; // @[ALU.scala 17:18]
-  wire [31:0] _T_1 = io_input1 & io_input2; // @[ALU.scala 17:41]
-  wire  _T_2 = io_aluCtl == 4'h1; // @[ALU.scala 18:18]
-  wire [31:0] _T_3 = io_input1 | io_input2; // @[ALU.scala 18:41]
-  wire  _T_4 = io_aluCtl == 4'h2; // @[ALU.scala 19:18]
-  wire [31:0] _T_6 = io_input1 + io_input2; // @[ALU.scala 19:41]
-  wire  _T_7 = io_aluCtl == 4'h3; // @[ALU.scala 20:18]
-  wire [31:0] _T_9 = io_input1 - io_input2; // @[ALU.scala 20:41]
-  wire  _T_10 = io_aluCtl == 4'h4; // @[ALU.scala 21:18]
-  wire  _T_13 = $signed(io_input1) < $signed(io_input2); // @[ALU.scala 21:48]
-  wire  _T_14 = io_aluCtl == 4'h5; // @[ALU.scala 22:18]
-  wire  _T_15 = io_input1 < io_input2; // @[ALU.scala 22:41]
-  wire  _T_16 = io_aluCtl == 4'h6; // @[ALU.scala 23:18]
+  wire  _io_result_T = io_aluCtl == 4'h0; // @[ALU.scala 17:18]
+  wire [31:0] _io_result_T_1 = io_input1 & io_input2; // @[ALU.scala 17:41]
+  wire  _io_result_T_2 = io_aluCtl == 4'h1; // @[ALU.scala 18:18]
+  wire [31:0] _io_result_T_3 = io_input1 | io_input2; // @[ALU.scala 18:41]
+  wire  _io_result_T_4 = io_aluCtl == 4'h2; // @[ALU.scala 19:18]
+  wire [31:0] _io_result_T_6 = io_input1 + io_input2; // @[ALU.scala 19:41]
+  wire  _io_result_T_7 = io_aluCtl == 4'h3; // @[ALU.scala 20:18]
+  wire [31:0] _io_result_T_9 = io_input1 - io_input2; // @[ALU.scala 20:41]
+  wire  _io_result_T_10 = io_aluCtl == 4'h4; // @[ALU.scala 21:18]
+  wire  _io_result_T_13 = $signed(io_input1) < $signed(io_input2); // @[ALU.scala 21:48]
+  wire  _io_result_T_14 = io_aluCtl == 4'h5; // @[ALU.scala 22:18]
+  wire  _io_result_T_15 = io_input1 < io_input2; // @[ALU.scala 22:41]
+  wire  _io_result_T_16 = io_aluCtl == 4'h6; // @[ALU.scala 23:18]
   wire [62:0] _GEN_0 = {{31'd0}, io_input1}; // @[ALU.scala 23:41]
-  wire [62:0] _T_18 = _GEN_0 << io_input2[4:0]; // @[ALU.scala 23:41]
-  wire  _T_19 = io_aluCtl == 4'h7; // @[ALU.scala 24:18]
-  wire [31:0] _T_21 = io_input1 >> io_input2[4:0]; // @[ALU.scala 24:41]
-  wire  _T_22 = io_aluCtl == 4'h8; // @[ALU.scala 25:18]
-  wire [31:0] _T_26 = $signed(io_input1) >>> io_input2[4:0]; // @[ALU.scala 25:68]
-  wire  _T_27 = io_aluCtl == 4'h9; // @[ALU.scala 26:18]
-  wire [31:0] _T_28 = io_input1 ^ io_input2; // @[ALU.scala 26:41]
-  wire [31:0] _T_29 = _T_27 ? _T_28 : 32'h0; // @[Mux.scala 98:16]
-  wire [31:0] _T_30 = _T_22 ? _T_26 : _T_29; // @[Mux.scala 98:16]
-  wire [31:0] _T_31 = _T_19 ? _T_21 : _T_30; // @[Mux.scala 98:16]
-  wire [62:0] _T_32 = _T_16 ? _T_18 : {{31'd0}, _T_31}; // @[Mux.scala 98:16]
-  wire [62:0] _T_33 = _T_14 ? {{62'd0}, _T_15} : _T_32; // @[Mux.scala 98:16]
-  wire [62:0] _T_34 = _T_10 ? {{62'd0}, _T_13} : _T_33; // @[Mux.scala 98:16]
-  wire [62:0] _T_35 = _T_7 ? {{31'd0}, _T_9} : _T_34; // @[Mux.scala 98:16]
-  wire [62:0] _T_36 = _T_4 ? {{31'd0}, _T_6} : _T_35; // @[Mux.scala 98:16]
-  wire [62:0] _T_37 = _T_2 ? {{31'd0}, _T_3} : _T_36; // @[Mux.scala 98:16]
-  wire [62:0] _T_38 = _T ? {{31'd0}, _T_1} : _T_37; // @[Mux.scala 98:16]
-  assign io_result = _T_38[31:0]; // @[ALU.scala 14:13]
+  wire [62:0] _io_result_T_18 = _GEN_0 << io_input2[4:0]; // @[ALU.scala 23:41]
+  wire  _io_result_T_19 = io_aluCtl == 4'h7; // @[ALU.scala 24:18]
+  wire [31:0] _io_result_T_21 = io_input1 >> io_input2[4:0]; // @[ALU.scala 24:41]
+  wire  _io_result_T_22 = io_aluCtl == 4'h8; // @[ALU.scala 25:18]
+  wire [31:0] _io_result_T_26 = $signed(io_input1) >>> io_input2[4:0]; // @[ALU.scala 25:68]
+  wire  _io_result_T_27 = io_aluCtl == 4'h9; // @[ALU.scala 26:18]
+  wire [31:0] _io_result_T_28 = io_input1 ^ io_input2; // @[ALU.scala 26:41]
+  wire [31:0] _io_result_T_29 = _io_result_T_27 ? _io_result_T_28 : 32'h0; // @[Mux.scala 98:16]
+  wire [31:0] _io_result_T_30 = _io_result_T_22 ? _io_result_T_26 : _io_result_T_29; // @[Mux.scala 98:16]
+  wire [31:0] _io_result_T_31 = _io_result_T_19 ? _io_result_T_21 : _io_result_T_30; // @[Mux.scala 98:16]
+  wire [62:0] _io_result_T_32 = _io_result_T_16 ? _io_result_T_18 : {{31'd0}, _io_result_T_31}; // @[Mux.scala 98:16]
+  wire [62:0] _io_result_T_33 = _io_result_T_14 ? {{62'd0}, _io_result_T_15} : _io_result_T_32; // @[Mux.scala 98:16]
+  wire [62:0] _io_result_T_34 = _io_result_T_10 ? {{62'd0}, _io_result_T_13} : _io_result_T_33; // @[Mux.scala 98:16]
+  wire [62:0] _io_result_T_35 = _io_result_T_7 ? {{31'd0}, _io_result_T_9} : _io_result_T_34; // @[Mux.scala 98:16]
+  wire [62:0] _io_result_T_36 = _io_result_T_4 ? {{31'd0}, _io_result_T_6} : _io_result_T_35; // @[Mux.scala 98:16]
+  wire [62:0] _io_result_T_37 = _io_result_T_2 ? {{31'd0}, _io_result_T_3} : _io_result_T_36; // @[Mux.scala 98:16]
+  wire [62:0] _io_result_T_38 = _io_result_T ? {{31'd0}, _io_result_T_1} : _io_result_T_37; // @[Mux.scala 98:16]
+  assign io_result = _io_result_T_38[31:0]; // @[ALU.scala 14:13]
 endmodule
 module AluControl(
   input  [1:0] io_aluOp,
@@ -2436,21 +2543,21 @@
   wire  ForwardingUnit_io_mem_regWrite; // @[Execute.scala 33:18]
   wire [1:0] ForwardingUnit_io_forwardA; // @[Execute.scala 33:18]
   wire [1:0] ForwardingUnit_io_forwardB; // @[Execute.scala 33:18]
-  wire  _T_4 = ForwardingUnit_io_forwardA == 2'h0; // @[Execute.scala 47:20]
-  wire  _T_5 = ForwardingUnit_io_forwardA == 2'h1; // @[Execute.scala 48:20]
-  wire  _T_6 = ForwardingUnit_io_forwardA == 2'h2; // @[Execute.scala 49:20]
-  wire [31:0] _T_7 = _T_6 ? io_wb_result : 32'h0; // @[Mux.scala 98:16]
-  wire [31:0] _T_8 = _T_5 ? io_mem_result : _T_7; // @[Mux.scala 98:16]
-  wire [31:0] inputMux1 = _T_4 ? io_readData1 : _T_8; // @[Mux.scala 98:16]
-  wire  _T_9 = ForwardingUnit_io_forwardB == 2'h0; // @[Execute.scala 55:20]
-  wire  _T_10 = ForwardingUnit_io_forwardB == 2'h1; // @[Execute.scala 56:20]
-  wire  _T_11 = ForwardingUnit_io_forwardB == 2'h2; // @[Execute.scala 57:20]
-  wire [31:0] _T_12 = _T_11 ? io_wb_result : 32'h0; // @[Mux.scala 98:16]
-  wire [31:0] _T_13 = _T_10 ? io_mem_result : _T_12; // @[Mux.scala 98:16]
-  wire [31:0] inputMux2 = _T_9 ? io_readData2 : _T_13; // @[Mux.scala 98:16]
-  wire  _T_14 = io_ctl_aluSrc1 == 2'h1; // @[Execute.scala 64:23]
-  wire  _T_15 = io_ctl_aluSrc1 == 2'h2; // @[Execute.scala 65:23]
-  wire [31:0] _T_16 = _T_15 ? 32'h0 : inputMux1; // @[Mux.scala 98:16]
+  wire  _inputMux1_T = ForwardingUnit_io_forwardA == 2'h0; // @[Execute.scala 47:20]
+  wire  _inputMux1_T_1 = ForwardingUnit_io_forwardA == 2'h1; // @[Execute.scala 48:20]
+  wire  _inputMux1_T_2 = ForwardingUnit_io_forwardA == 2'h2; // @[Execute.scala 49:20]
+  wire [31:0] _inputMux1_T_3 = _inputMux1_T_2 ? io_wb_result : 32'h0; // @[Mux.scala 98:16]
+  wire [31:0] _inputMux1_T_4 = _inputMux1_T_1 ? io_mem_result : _inputMux1_T_3; // @[Mux.scala 98:16]
+  wire [31:0] inputMux1 = _inputMux1_T ? io_readData1 : _inputMux1_T_4; // @[Mux.scala 98:16]
+  wire  _inputMux2_T = ForwardingUnit_io_forwardB == 2'h0; // @[Execute.scala 55:20]
+  wire  _inputMux2_T_1 = ForwardingUnit_io_forwardB == 2'h1; // @[Execute.scala 56:20]
+  wire  _inputMux2_T_2 = ForwardingUnit_io_forwardB == 2'h2; // @[Execute.scala 57:20]
+  wire [31:0] _inputMux2_T_3 = _inputMux2_T_2 ? io_wb_result : 32'h0; // @[Mux.scala 98:16]
+  wire [31:0] _inputMux2_T_4 = _inputMux2_T_1 ? io_mem_result : _inputMux2_T_3; // @[Mux.scala 98:16]
+  wire [31:0] inputMux2 = _inputMux2_T ? io_readData2 : _inputMux2_T_4; // @[Mux.scala 98:16]
+  wire  _aluIn1_T = io_ctl_aluSrc1 == 2'h1; // @[Execute.scala 64:23]
+  wire  _aluIn1_T_1 = io_ctl_aluSrc1 == 2'h2; // @[Execute.scala 65:23]
+  wire [31:0] _aluIn1_T_2 = _aluIn1_T_1 ? 32'h0 : inputMux1; // @[Mux.scala 98:16]
   ALU alu ( // @[Execute.scala 31:19]
     .io_input1(alu_io_input1),
     .io_input2(alu_io_input2),
@@ -2474,9 +2581,9 @@
     .io_forwardA(ForwardingUnit_io_forwardA),
     .io_forwardB(ForwardingUnit_io_forwardB)
   );
-  assign io_writeData = _T_9 ? io_readData2 : _T_13; // @[Mux.scala 98:16]
+  assign io_writeData = _inputMux2_T ? io_readData2 : _inputMux2_T_4; // @[Mux.scala 98:16]
   assign io_ALUresult = alu_io_result; // @[Execute.scala 78:16]
-  assign alu_io_input1 = _T_14 ? io_pcAddress : _T_16; // @[Mux.scala 98:16]
+  assign alu_io_input1 = _aluIn1_T ? io_pcAddress : _aluIn1_T_2; // @[Mux.scala 98:16]
   assign alu_io_input2 = io_ctl_aluSrc ? inputMux2 : io_immediate; // @[Execute.scala 68:19]
   assign alu_io_aluCtl = aluCtl_io_out; // @[Execute.scala 77:17]
   assign aluCtl_io_aluOp = io_ctl_aluOp; // @[Execute.scala 72:19]
@@ -2515,8 +2622,8 @@
   reg [1:0] offset; // @[MemoryFetch.scala 26:23]
   reg [2:0] funct3; // @[MemoryFetch.scala 27:23]
   wire [1:0] offsetSW = io_aluResultIn[1:0]; // @[MemoryFetch.scala 28:32]
-  wire  _T_8 = offsetSW == 2'h0; // @[MemoryFetch.scala 45:19]
-  wire  _T_9 = offsetSW == 2'h1; // @[MemoryFetch.scala 47:25]
+  wire  _T_3 = offsetSW == 2'h0; // @[MemoryFetch.scala 45:19]
+  wire  _T_4 = offsetSW == 2'h1; // @[MemoryFetch.scala 47:25]
   wire [7:0] _GEN_2 = offsetSW == 2'h2 ? io_writeData[15:8] : io_writeData[15:8]; // @[MemoryFetch.scala 53:33 MemoryFetch.scala 54:16 MemoryFetch.scala 60:16]
   wire [7:0] _GEN_3 = offsetSW == 2'h2 ? io_writeData[23:16] : io_writeData[23:16]; // @[MemoryFetch.scala 53:33 MemoryFetch.scala 55:16 MemoryFetch.scala 61:16]
   wire [7:0] _GEN_4 = offsetSW == 2'h2 ? io_writeData[7:0] : io_writeData[31:24]; // @[MemoryFetch.scala 53:33 MemoryFetch.scala 56:16 MemoryFetch.scala 62:16]
@@ -2532,16 +2639,16 @@
   wire [7:0] _GEN_14 = offsetSW == 2'h0 ? io_writeData[15:8] : _GEN_8; // @[MemoryFetch.scala 45:27 MemoryFetch.scala 39:12]
   wire [7:0] _GEN_15 = offsetSW == 2'h0 ? io_writeData[23:16] : _GEN_9; // @[MemoryFetch.scala 45:27 MemoryFetch.scala 40:12]
   wire [7:0] _GEN_16 = offsetSW == 2'h0 ? io_writeData[31:24] : _GEN_10; // @[MemoryFetch.scala 45:27 MemoryFetch.scala 41:12]
-  wire [3:0] _GEN_17 = _T_9 ? 4'h6 : 4'hc; // @[MemoryFetch.scala 73:33 MemoryFetch.scala 75:38 MemoryFetch.scala 82:38]
-  wire [7:0] _GEN_18 = _T_9 ? io_writeData[23:16] : io_writeData[23:16]; // @[MemoryFetch.scala 73:33 MemoryFetch.scala 76:16 MemoryFetch.scala 85:16]
-  wire [7:0] _GEN_19 = _T_9 ? io_writeData[7:0] : io_writeData[31:24]; // @[MemoryFetch.scala 73:33 MemoryFetch.scala 77:16 MemoryFetch.scala 86:16]
-  wire [7:0] _GEN_20 = _T_9 ? io_writeData[15:8] : io_writeData[7:0]; // @[MemoryFetch.scala 73:33 MemoryFetch.scala 78:16 MemoryFetch.scala 83:16]
-  wire [7:0] _GEN_21 = _T_9 ? io_writeData[31:24] : io_writeData[15:8]; // @[MemoryFetch.scala 73:33 MemoryFetch.scala 79:16 MemoryFetch.scala 84:16]
-  wire [3:0] _GEN_22 = _T_8 ? 4'h3 : _GEN_17; // @[MemoryFetch.scala 70:27 MemoryFetch.scala 72:38]
-  wire [7:0] _GEN_23 = _T_8 ? io_writeData[7:0] : _GEN_18; // @[MemoryFetch.scala 70:27 MemoryFetch.scala 38:12]
-  wire [7:0] _GEN_24 = _T_8 ? io_writeData[15:8] : _GEN_19; // @[MemoryFetch.scala 70:27 MemoryFetch.scala 39:12]
-  wire [7:0] _GEN_25 = _T_8 ? io_writeData[23:16] : _GEN_20; // @[MemoryFetch.scala 70:27 MemoryFetch.scala 40:12]
-  wire [7:0] _GEN_26 = _T_8 ? io_writeData[31:24] : _GEN_21; // @[MemoryFetch.scala 70:27 MemoryFetch.scala 41:12]
+  wire [3:0] _GEN_17 = _T_4 ? 4'h6 : 4'hc; // @[MemoryFetch.scala 73:33 MemoryFetch.scala 75:38 MemoryFetch.scala 82:38]
+  wire [7:0] _GEN_18 = _T_4 ? io_writeData[23:16] : io_writeData[23:16]; // @[MemoryFetch.scala 73:33 MemoryFetch.scala 76:16 MemoryFetch.scala 85:16]
+  wire [7:0] _GEN_19 = _T_4 ? io_writeData[7:0] : io_writeData[31:24]; // @[MemoryFetch.scala 73:33 MemoryFetch.scala 77:16 MemoryFetch.scala 86:16]
+  wire [7:0] _GEN_20 = _T_4 ? io_writeData[15:8] : io_writeData[7:0]; // @[MemoryFetch.scala 73:33 MemoryFetch.scala 78:16 MemoryFetch.scala 83:16]
+  wire [7:0] _GEN_21 = _T_4 ? io_writeData[31:24] : io_writeData[15:8]; // @[MemoryFetch.scala 73:33 MemoryFetch.scala 79:16 MemoryFetch.scala 84:16]
+  wire [3:0] _GEN_22 = _T_3 ? 4'h3 : _GEN_17; // @[MemoryFetch.scala 70:27 MemoryFetch.scala 72:38]
+  wire [7:0] _GEN_23 = _T_3 ? io_writeData[7:0] : _GEN_18; // @[MemoryFetch.scala 70:27 MemoryFetch.scala 38:12]
+  wire [7:0] _GEN_24 = _T_3 ? io_writeData[15:8] : _GEN_19; // @[MemoryFetch.scala 70:27 MemoryFetch.scala 39:12]
+  wire [7:0] _GEN_25 = _T_3 ? io_writeData[23:16] : _GEN_20; // @[MemoryFetch.scala 70:27 MemoryFetch.scala 40:12]
+  wire [7:0] _GEN_26 = _T_3 ? io_writeData[31:24] : _GEN_21; // @[MemoryFetch.scala 70:27 MemoryFetch.scala 41:12]
   wire [3:0] _GEN_27 = io_writeEnable & io_f3 == 3'h1 ? _GEN_22 : 4'hf; // @[MemoryFetch.scala 68:52 MemoryFetch.scala 91:36]
   wire [7:0] _GEN_28 = io_writeEnable & io_f3 == 3'h1 ? _GEN_23 : io_writeData[7:0]; // @[MemoryFetch.scala 68:52 MemoryFetch.scala 38:12]
   wire [7:0] _GEN_29 = io_writeEnable & io_f3 == 3'h1 ? _GEN_24 : io_writeData[15:8]; // @[MemoryFetch.scala 68:52 MemoryFetch.scala 39:12]
@@ -2551,60 +2658,60 @@
   wire [7:0] wdata_1 = io_writeEnable & io_f3 == 3'h0 ? _GEN_14 : _GEN_29; // @[MemoryFetch.scala 44:45]
   wire [7:0] wdata_2 = io_writeEnable & io_f3 == 3'h0 ? _GEN_15 : _GEN_30; // @[MemoryFetch.scala 44:45]
   wire [7:0] wdata_3 = io_writeEnable & io_f3 == 3'h0 ? _GEN_16 : _GEN_31; // @[MemoryFetch.scala 44:45]
-  wire [15:0] lo = {wdata_1,wdata_0}; // @[MemoryFetch.scala 94:46]
-  wire [15:0] hi = {wdata_3,wdata_2}; // @[MemoryFetch.scala 94:46]
-  wire  _T_36 = io_writeEnable | io_readEnable; // @[MemoryFetch.scala 97:42]
+  wire [15:0] io_dccmReq_bits_dataRequest_lo = {wdata_1,wdata_0}; // @[MemoryFetch.scala 94:46]
+  wire [15:0] io_dccmReq_bits_dataRequest_hi = {wdata_3,wdata_2}; // @[MemoryFetch.scala 94:46]
+  wire  _io_dccmReq_valid_T = io_writeEnable | io_readEnable; // @[MemoryFetch.scala 97:42]
   wire [31:0] rdata = io_dccmRsp_valid ? io_dccmRsp_bits_dataResponse : 32'h0; // @[MemoryFetch.scala 101:15]
-  wire  _T_44 = offset == 2'h0; // @[MemoryFetch.scala 111:21]
-  wire [23:0] hi_1 = rdata[7] ? 24'hffffff : 24'h0; // @[Bitwise.scala 72:12]
-  wire [7:0] lo_1 = rdata[7:0]; // @[MemoryFetch.scala 113:53]
-  wire [31:0] _T_47 = {hi_1,lo_1}; // @[Cat.scala 30:58]
-  wire  _T_48 = offset == 2'h1; // @[MemoryFetch.scala 114:28]
-  wire [23:0] hi_2 = rdata[15] ? 24'hffffff : 24'h0; // @[Bitwise.scala 72:12]
-  wire [7:0] lo_2 = rdata[15:8]; // @[MemoryFetch.scala 116:55]
-  wire [31:0] _T_51 = {hi_2,lo_2}; // @[Cat.scala 30:58]
-  wire  _T_52 = offset == 2'h2; // @[MemoryFetch.scala 117:28]
-  wire [23:0] hi_3 = rdata[23] ? 24'hffffff : 24'h0; // @[Bitwise.scala 72:12]
-  wire [7:0] lo_3 = rdata[23:16]; // @[MemoryFetch.scala 119:55]
-  wire [31:0] _T_55 = {hi_3,lo_3}; // @[Cat.scala 30:58]
-  wire [23:0] hi_4 = rdata[31] ? 24'hffffff : 24'h0; // @[Bitwise.scala 72:12]
-  wire [7:0] lo_4 = rdata[31:24]; // @[MemoryFetch.scala 122:55]
-  wire [31:0] _T_59 = {hi_4,lo_4}; // @[Cat.scala 30:58]
-  wire [31:0] _GEN_38 = offset == 2'h2 ? _T_55 : _T_59; // @[MemoryFetch.scala 117:41 MemoryFetch.scala 119:23]
-  wire [31:0] _GEN_39 = offset == 2'h1 ? _T_51 : _GEN_38; // @[MemoryFetch.scala 114:41 MemoryFetch.scala 116:23]
-  wire [31:0] _GEN_40 = offset == 2'h0 ? _T_47 : _GEN_39; // @[MemoryFetch.scala 111:34 MemoryFetch.scala 113:23]
-  wire [31:0] _T_62 = {24'h0,lo_1}; // @[Cat.scala 30:58]
-  wire [31:0] _T_64 = {24'h0,lo_2}; // @[Cat.scala 30:58]
-  wire [31:0] _T_66 = {24'h0,lo_3}; // @[Cat.scala 30:58]
-  wire [31:0] _T_68 = {24'h0,lo_4}; // @[Cat.scala 30:58]
-  wire [31:0] _GEN_42 = _T_52 ? _T_66 : _T_68; // @[MemoryFetch.scala 136:40 MemoryFetch.scala 138:23]
-  wire [31:0] _GEN_43 = _T_48 ? _T_64 : _GEN_42; // @[MemoryFetch.scala 133:40 MemoryFetch.scala 135:23]
-  wire [31:0] _GEN_44 = _T_44 ? _T_62 : _GEN_43; // @[MemoryFetch.scala 130:34 MemoryFetch.scala 132:23]
-  wire [15:0] lo_9 = rdata[15:0]; // @[MemoryFetch.scala 151:49]
-  wire [31:0] _T_71 = {16'h0,lo_9}; // @[Cat.scala 30:58]
-  wire [15:0] lo_10 = rdata[23:8]; // @[MemoryFetch.scala 154:49]
-  wire [31:0] _T_73 = {16'h0,lo_10}; // @[Cat.scala 30:58]
-  wire [15:0] lo_11 = rdata[31:16]; // @[MemoryFetch.scala 157:49]
-  wire [31:0] _T_75 = {16'h0,lo_11}; // @[Cat.scala 30:58]
-  wire [31:0] _GEN_46 = _T_48 ? _T_73 : _T_75; // @[MemoryFetch.scala 152:41 MemoryFetch.scala 154:23]
-  wire [31:0] _GEN_47 = _T_44 ? _T_71 : _GEN_46; // @[MemoryFetch.scala 149:34 MemoryFetch.scala 151:23]
-  wire [15:0] hi_12 = rdata[15] ? 16'hffff : 16'h0; // @[Bitwise.scala 72:12]
-  wire [31:0] _T_80 = {hi_12,lo_9}; // @[Cat.scala 30:58]
-  wire [15:0] hi_13 = rdata[23] ? 16'hffff : 16'h0; // @[Bitwise.scala 72:12]
-  wire [31:0] _T_84 = {hi_13,lo_10}; // @[Cat.scala 30:58]
-  wire [15:0] hi_14 = rdata[31] ? 16'hffff : 16'h0; // @[Bitwise.scala 72:12]
-  wire [31:0] _T_88 = {hi_14,lo_11}; // @[Cat.scala 30:58]
-  wire [31:0] _GEN_49 = _T_48 ? _T_84 : _T_88; // @[MemoryFetch.scala 168:41 MemoryFetch.scala 170:23]
-  wire [31:0] _GEN_50 = _T_44 ? _T_80 : _GEN_49; // @[MemoryFetch.scala 165:34 MemoryFetch.scala 167:23]
+  wire  _T_12 = offset == 2'h0; // @[MemoryFetch.scala 111:21]
+  wire [23:0] io_readData_hi = rdata[7] ? 24'hffffff : 24'h0; // @[Bitwise.scala 72:12]
+  wire [7:0] io_readData_lo = rdata[7:0]; // @[MemoryFetch.scala 113:53]
+  wire [31:0] _io_readData_T_2 = {io_readData_hi,io_readData_lo}; // @[Cat.scala 30:58]
+  wire  _T_13 = offset == 2'h1; // @[MemoryFetch.scala 114:28]
+  wire [23:0] io_readData_hi_1 = rdata[15] ? 24'hffffff : 24'h0; // @[Bitwise.scala 72:12]
+  wire [7:0] io_readData_lo_1 = rdata[15:8]; // @[MemoryFetch.scala 116:55]
+  wire [31:0] _io_readData_T_5 = {io_readData_hi_1,io_readData_lo_1}; // @[Cat.scala 30:58]
+  wire  _T_14 = offset == 2'h2; // @[MemoryFetch.scala 117:28]
+  wire [23:0] io_readData_hi_2 = rdata[23] ? 24'hffffff : 24'h0; // @[Bitwise.scala 72:12]
+  wire [7:0] io_readData_lo_2 = rdata[23:16]; // @[MemoryFetch.scala 119:55]
+  wire [31:0] _io_readData_T_8 = {io_readData_hi_2,io_readData_lo_2}; // @[Cat.scala 30:58]
+  wire [23:0] io_readData_hi_3 = rdata[31] ? 24'hffffff : 24'h0; // @[Bitwise.scala 72:12]
+  wire [7:0] io_readData_lo_3 = rdata[31:24]; // @[MemoryFetch.scala 122:55]
+  wire [31:0] _io_readData_T_11 = {io_readData_hi_3,io_readData_lo_3}; // @[Cat.scala 30:58]
+  wire [31:0] _GEN_38 = offset == 2'h2 ? _io_readData_T_8 : _io_readData_T_11; // @[MemoryFetch.scala 117:41 MemoryFetch.scala 119:23]
+  wire [31:0] _GEN_39 = offset == 2'h1 ? _io_readData_T_5 : _GEN_38; // @[MemoryFetch.scala 114:41 MemoryFetch.scala 116:23]
+  wire [31:0] _GEN_40 = offset == 2'h0 ? _io_readData_T_2 : _GEN_39; // @[MemoryFetch.scala 111:34 MemoryFetch.scala 113:23]
+  wire [31:0] _io_readData_T_12 = {24'h0,io_readData_lo}; // @[Cat.scala 30:58]
+  wire [31:0] _io_readData_T_13 = {24'h0,io_readData_lo_1}; // @[Cat.scala 30:58]
+  wire [31:0] _io_readData_T_14 = {24'h0,io_readData_lo_2}; // @[Cat.scala 30:58]
+  wire [31:0] _io_readData_T_15 = {24'h0,io_readData_lo_3}; // @[Cat.scala 30:58]
+  wire [31:0] _GEN_42 = _T_14 ? _io_readData_T_14 : _io_readData_T_15; // @[MemoryFetch.scala 136:40 MemoryFetch.scala 138:23]
+  wire [31:0] _GEN_43 = _T_13 ? _io_readData_T_13 : _GEN_42; // @[MemoryFetch.scala 133:40 MemoryFetch.scala 135:23]
+  wire [31:0] _GEN_44 = _T_12 ? _io_readData_T_12 : _GEN_43; // @[MemoryFetch.scala 130:34 MemoryFetch.scala 132:23]
+  wire [15:0] io_readData_lo_8 = rdata[15:0]; // @[MemoryFetch.scala 151:49]
+  wire [31:0] _io_readData_T_16 = {16'h0,io_readData_lo_8}; // @[Cat.scala 30:58]
+  wire [15:0] io_readData_lo_9 = rdata[23:8]; // @[MemoryFetch.scala 154:49]
+  wire [31:0] _io_readData_T_17 = {16'h0,io_readData_lo_9}; // @[Cat.scala 30:58]
+  wire [15:0] io_readData_lo_10 = rdata[31:16]; // @[MemoryFetch.scala 157:49]
+  wire [31:0] _io_readData_T_18 = {16'h0,io_readData_lo_10}; // @[Cat.scala 30:58]
+  wire [31:0] _GEN_46 = _T_13 ? _io_readData_T_17 : _io_readData_T_18; // @[MemoryFetch.scala 152:41 MemoryFetch.scala 154:23]
+  wire [31:0] _GEN_47 = _T_12 ? _io_readData_T_16 : _GEN_46; // @[MemoryFetch.scala 149:34 MemoryFetch.scala 151:23]
+  wire [15:0] io_readData_hi_11 = rdata[15] ? 16'hffff : 16'h0; // @[Bitwise.scala 72:12]
+  wire [31:0] _io_readData_T_21 = {io_readData_hi_11,io_readData_lo_8}; // @[Cat.scala 30:58]
+  wire [15:0] io_readData_hi_12 = rdata[23] ? 16'hffff : 16'h0; // @[Bitwise.scala 72:12]
+  wire [31:0] _io_readData_T_24 = {io_readData_hi_12,io_readData_lo_9}; // @[Cat.scala 30:58]
+  wire [15:0] io_readData_hi_13 = rdata[31] ? 16'hffff : 16'h0; // @[Bitwise.scala 72:12]
+  wire [31:0] _io_readData_T_27 = {io_readData_hi_13,io_readData_lo_10}; // @[Cat.scala 30:58]
+  wire [31:0] _GEN_49 = _T_13 ? _io_readData_T_24 : _io_readData_T_27; // @[MemoryFetch.scala 168:41 MemoryFetch.scala 170:23]
+  wire [31:0] _GEN_50 = _T_12 ? _io_readData_T_21 : _GEN_49; // @[MemoryFetch.scala 165:34 MemoryFetch.scala 167:23]
   wire [31:0] _GEN_52 = funct3 == 3'h5 ? _GEN_47 : _GEN_50; // @[MemoryFetch.scala 147:38]
   wire [31:0] _GEN_53 = funct3 == 3'h4 ? _GEN_44 : _GEN_52; // @[MemoryFetch.scala 128:38]
   wire [31:0] _GEN_54 = funct3 == 3'h0 ? _GEN_40 : _GEN_53; // @[MemoryFetch.scala 109:38]
-  wire  _T_91 = io_writeEnable & io_aluResultIn[31:28] == 4'h8; // @[MemoryFetch.scala 188:23]
+  wire  _T_31 = io_writeEnable & io_aluResultIn[31:28] == 4'h8; // @[MemoryFetch.scala 188:23]
   assign io_readData = funct3 == 3'h2 ? rdata : _GEN_54; // @[MemoryFetch.scala 105:31 MemoryFetch.scala 107:19]
-  assign io_stall = _T_36 & ~io_dccmRsp_valid; // @[MemoryFetch.scala 99:49]
+  assign io_stall = _io_dccmReq_valid_T & ~io_dccmRsp_valid; // @[MemoryFetch.scala 99:49]
   assign io_dccmReq_valid = io_writeEnable | io_readEnable; // @[MemoryFetch.scala 97:42]
   assign io_dccmReq_bits_addrRequest = io_aluResultIn; // @[MemoryFetch.scala 95:31]
-  assign io_dccmReq_bits_dataRequest = {hi,lo}; // @[MemoryFetch.scala 94:46]
+  assign io_dccmReq_bits_dataRequest = {io_dccmReq_bits_dataRequest_hi,io_dccmReq_bits_dataRequest_lo}; // @[MemoryFetch.scala 94:46]
   assign io_dccmReq_bits_activeByteLane = io_writeEnable & io_f3 == 3'h0 ? _GEN_12 : _GEN_27; // @[MemoryFetch.scala 44:45]
   assign io_dccmReq_bits_isWrite = io_writeEnable; // @[MemoryFetch.scala 96:27]
   always @(posedge clock) begin
@@ -2622,7 +2729,7 @@
     `ifdef PRINTF_COND
       if (`PRINTF_COND) begin
     `endif
-        if (_T_91 & ~reset) begin
+        if (_T_31 & ~reset) begin
           $fwrite(32'h80000002,"%x\n",io_writeData); // @[MemoryFetch.scala 189:11]
         end
     `ifdef PRINTF_COND
@@ -2690,9 +2797,9 @@
   reg [31:0] _RAND_0;
 `endif // RANDOMIZE_REG_INIT
   reg [31:0] pc_reg; // @[PC.scala 12:23]
-  wire [31:0] _T_2 = $signed(pc_reg) + 32'sh4; // @[PC.scala 15:41]
+  wire [31:0] _io_pc4_T_2 = $signed(pc_reg) + 32'sh4; // @[PC.scala 15:41]
   assign io_out = pc_reg; // @[PC.scala 14:10]
-  assign io_pc4 = io_halt ? $signed(pc_reg) : $signed(_T_2); // @[PC.scala 15:16]
+  assign io_pc4 = io_halt ? $signed(pc_reg) : $signed(_io_pc4_T_2); // @[PC.scala 15:16]
   always @(posedge clock) begin
     if (reset) begin // @[PC.scala 12:23]
       pc_reg <= -32'sh4; // @[PC.scala 12:23]
@@ -2749,7 +2856,6 @@
 module Core(
   input         clock,
   input         reset,
-  input         io_stall,
   output        io_dmemReq_valid,
   output [31:0] io_dmemReq_bits_addrRequest,
   output [31:0] io_dmemReq_bits_dataRequest,
@@ -2799,7 +2905,6 @@
 `endif // RANDOMIZE_REG_INIT
   wire [31:0] InstructionFetch_io_address; // @[Core.scala 71:18]
   wire [31:0] InstructionFetch_io_instruction; // @[Core.scala 71:18]
-  wire  InstructionFetch_io_stall; // @[Core.scala 71:18]
   wire  InstructionFetch_io_coreInstrReq_ready; // @[Core.scala 71:18]
   wire  InstructionFetch_io_coreInstrReq_valid; // @[Core.scala 71:18]
   wire [31:0] InstructionFetch_io_coreInstrReq_bits_addrRequest; // @[Core.scala 71:18]
@@ -2915,14 +3020,14 @@
   reg [1:0] mem_reg_ctl_memToReg; // @[Core.scala 66:37]
   reg  mem_reg_ctl_regWrite; // @[Core.scala 67:37]
   reg [31:0] mem_reg_pc; // @[Core.scala 68:27]
-  wire  _T_2 = ~MEM_io_stall; // @[Core.scala 91:37]
-  wire [31:0] _T_5 = InstructionDecode_io_pcSrc ? $signed(InstructionDecode_io_pcPlusOffset) : $signed(pc_io_pc4); // @[Core.scala 91:55]
-  wire [4:0] _T_17 = io_dmemRsp_valid ? mem_reg_wra : 5'h0; // @[Core.scala 229:19]
+  wire  _pc_io_in_T = ~MEM_io_stall; // @[Core.scala 91:37]
+  wire [31:0] _pc_io_in_T_3 = InstructionDecode_io_pcSrc ? $signed(InstructionDecode_io_pcPlusOffset) : $signed(
+    pc_io_pc4); // @[Core.scala 91:55]
+  wire [4:0] _wb_addr_T = io_dmemRsp_valid ? mem_reg_wra : 5'h0; // @[Core.scala 229:19]
   wire [31:0] _GEN_14 = mem_reg_ctl_memToReg == 2'h2 ? mem_reg_pc : mem_reg_result; // @[Core.scala 230:44 Core.scala 231:15 Core.scala 235:15]
   InstructionFetch InstructionFetch ( // @[Core.scala 71:18]
     .io_address(InstructionFetch_io_address),
     .io_instruction(InstructionFetch_io_instruction),
-    .io_stall(InstructionFetch_io_stall),
     .io_coreInstrReq_ready(InstructionFetch_io_coreInstrReq_ready),
     .io_coreInstrReq_valid(InstructionFetch_io_coreInstrReq_valid),
     .io_coreInstrReq_bits_addrRequest(InstructionFetch_io_coreInstrReq_bits_addrRequest),
@@ -3023,7 +3128,6 @@
   assign io_imemReq_valid = InstructionFetch_io_coreInstrReq_valid; // @[Core.scala 84:14]
   assign io_imemReq_bits_addrRequest = InstructionFetch_io_coreInstrReq_bits_addrRequest; // @[Core.scala 84:14]
   assign InstructionFetch_io_address = pc_io_in; // @[Core.scala 87:32]
-  assign InstructionFetch_io_stall = io_stall; // @[Core.scala 82:12]
   assign InstructionFetch_io_coreInstrReq_ready = io_imemReq_ready; // @[Core.scala 84:14]
   assign InstructionFetch_io_coreInstrResp_valid = io_imemRsp_valid; // @[Core.scala 85:20]
   assign InstructionFetch_io_coreInstrResp_bits_dataResponse = io_imemRsp_bits_dataResponse; // @[Core.scala 85:20]
@@ -3031,7 +3135,7 @@
   assign InstructionDecode_reset = reset;
   assign InstructionDecode_io_id_instruction = if_reg_ins; // @[Core.scala 125:21]
   assign InstructionDecode_io_writeData = mem_reg_ctl_memToReg == 2'h1 ? MEM_io_readData : _GEN_14; // @[Core.scala 227:38 Core.scala 228:13]
-  assign InstructionDecode_io_writeReg = mem_reg_ctl_memToReg == 2'h1 ? _T_17 : mem_reg_wra; // @[Core.scala 227:38 Core.scala 229:13]
+  assign InstructionDecode_io_writeReg = mem_reg_ctl_memToReg == 2'h1 ? _wb_addr_T : mem_reg_wra; // @[Core.scala 227:38 Core.scala 229:13]
   assign InstructionDecode_io_pcAddress = if_reg_pc; // @[Core.scala 126:16]
   assign InstructionDecode_io_ctl_writeEnable = mem_reg_ctl_regWrite; // @[Core.scala 244:22]
   assign InstructionDecode_io_id_ex_mem_read = id_reg_ctl_memRead; // @[Core.scala 162:21]
@@ -3072,19 +3176,19 @@
   assign MEM_io_dccmRsp_bits_dataResponse = io_dmemRsp_bits_dataResponse; // @[Core.scala 181:18]
   assign pc_clock = clock;
   assign pc_reset = reset;
-  assign pc_io_in = InstructionDecode_io_hdu_pcWrite & ~MEM_io_stall ? $signed(_T_5) : $signed(pc_io_out); // @[Core.scala 91:18]
+  assign pc_io_in = InstructionDecode_io_hdu_pcWrite & ~MEM_io_stall ? $signed(_pc_io_in_T_3) : $signed(pc_io_out); // @[Core.scala 91:18]
   assign pc_io_halt = io_imemReq_valid ? 1'h0 : 1'h1; // @[Core.scala 90:20]
   always @(posedge clock) begin
     if (reset) begin // @[Core.scala 24:26]
       if_reg_pc <= 32'h0; // @[Core.scala 24:26]
-    end else if (InstructionDecode_io_hdu_if_reg_write & _T_2) begin // @[Core.scala 94:46]
+    end else if (InstructionDecode_io_hdu_if_reg_write & _pc_io_in_T) begin // @[Core.scala 94:46]
       if_reg_pc <= pc_io_out; // @[Core.scala 95:15]
     end
     if (reset) begin // @[Core.scala 25:27]
       if_reg_ins <= 32'h0; // @[Core.scala 25:27]
     end else if (InstructionDecode_io_ifid_flush) begin // @[Core.scala 98:23]
       if_reg_ins <= 32'h0; // @[Core.scala 99:16]
-    end else if (InstructionDecode_io_hdu_if_reg_write & _T_2) begin // @[Core.scala 94:46]
+    end else if (InstructionDecode_io_hdu_if_reg_write & _pc_io_in_T) begin // @[Core.scala 94:46]
       if (io_imemRsp_valid) begin // @[Core.scala 88:24]
         if_reg_ins <= InstructionFetch_io_instruction;
       end else begin
@@ -3414,734 +3518,354 @@
   assign io_devOut_2_bits_cyc = io_hostIn_bits_cyc; // @[Switch1toN.scala 31:33]
   assign io_devOut_2_bits_stb = io_hostIn_bits_stb; // @[Switch1toN.scala 31:33]
 endmodule
-module Rx(
-  input         clock,
-  input         reset,
-  input  [15:0] io_CLK_PER_BIT,
-  input         io_rxd,
-  output        io_valid,
-  output [7:0]  io_data
-);
-`ifdef RANDOMIZE_REG_INIT
-  reg [31:0] _RAND_0;
-  reg [31:0] _RAND_1;
-  reg [31:0] _RAND_2;
-  reg [31:0] _RAND_3;
-  reg [31:0] _RAND_4;
-  reg [31:0] _RAND_5;
-  reg [31:0] _RAND_6;
-`endif // RANDOMIZE_REG_INIT
-  reg [2:0] stateReg; // @[Rx.scala 19:25]
-  reg [7:0] clockCount; // @[Rx.scala 21:27]
-  reg [3:0] bitIndex; // @[Rx.scala 22:25]
-  reg  validReg; // @[Rx.scala 23:25]
-  reg  rxReg_REG; // @[Rx.scala 25:30]
-  reg  rxReg; // @[Rx.scala 25:22]
-  reg [7:0] shiftReg; // @[Rx.scala 26:25]
-  wire  _T = 3'h0 == stateReg; // @[Conditional.scala 37:30]
-  wire  _T_1 = ~io_rxd; // @[Rx.scala 34:19]
-  wire  _T_2 = 3'h1 == stateReg; // @[Conditional.scala 37:30]
-  wire [31:0] CLCK_PER_BIT = {{16'd0}, io_CLK_PER_BIT}; // @[Rx.scala 15:36 Rx.scala 16:16]
-  wire [31:0] _T_4 = CLCK_PER_BIT - 32'h1; // @[Rx.scala 42:42]
-  wire [31:0] _T_5 = _T_4 / 2'h2; // @[Rx.scala 42:49]
-  wire [31:0] _GEN_34 = {{24'd0}, clockCount}; // @[Rx.scala 42:23]
-  wire [7:0] _GEN_1 = _T_1 ? 8'h0 : clockCount; // @[Rx.scala 43:30 Rx.scala 44:22 Rx.scala 21:27]
-  wire [2:0] _GEN_2 = _T_1 ? 3'h2 : 3'h0; // @[Rx.scala 43:30 Rx.scala 45:20 Rx.scala 47:20]
-  wire [7:0] _clockCount_T_1 = clockCount + 8'h1; // @[Rx.scala 50:34]
-  wire  _T_8 = 3'h2 == stateReg; // @[Conditional.scala 37:30]
-  wire  _T_11 = _GEN_34 < _T_4; // @[Rx.scala 56:23]
-  wire [6:0] shiftReg_lo = shiftReg[7:1]; // @[Rx.scala 61:41]
-  wire [7:0] _shiftReg_T = {rxReg,shiftReg_lo}; // @[Cat.scala 30:58]
-  wire [3:0] _bitIndex_T_1 = bitIndex + 4'h1; // @[Rx.scala 65:32]
-  wire [3:0] _GEN_5 = bitIndex < 4'h7 ? _bitIndex_T_1 : 4'h0; // @[Rx.scala 64:30 Rx.scala 65:20 Rx.scala 68:20]
-  wire [2:0] _GEN_6 = bitIndex < 4'h7 ? 3'h2 : 3'h3; // @[Rx.scala 64:30 Rx.scala 66:20 Rx.scala 69:20]
-  wire [7:0] _GEN_7 = _GEN_34 < _T_4 ? _clockCount_T_1 : 8'h0; // @[Rx.scala 56:47 Rx.scala 57:20 Rx.scala 60:20]
-  wire [2:0] _GEN_8 = _GEN_34 < _T_4 ? 3'h2 : _GEN_6; // @[Rx.scala 56:47 Rx.scala 58:18]
-  wire [7:0] _GEN_9 = _GEN_34 < _T_4 ? shiftReg : _shiftReg_T; // @[Rx.scala 56:47 Rx.scala 26:25 Rx.scala 61:18]
-  wire [3:0] _GEN_10 = _GEN_34 < _T_4 ? bitIndex : _GEN_5; // @[Rx.scala 56:47 Rx.scala 22:25]
-  wire  _T_13 = 3'h3 == stateReg; // @[Conditional.scala 37:30]
-  wire [2:0] _GEN_12 = _T_11 ? 3'h3 : 3'h4; // @[Rx.scala 75:47 Rx.scala 77:18 Rx.scala 81:18]
-  wire  _GEN_13 = _T_11 ? validReg : 1'h1; // @[Rx.scala 75:47 Rx.scala 23:25 Rx.scala 79:18]
-  wire  _T_17 = 3'h4 == stateReg; // @[Conditional.scala 37:30]
-  wire [2:0] _GEN_14 = _T_17 ? 3'h0 : stateReg; // @[Conditional.scala 39:67 Rx.scala 86:16 Rx.scala 19:25]
-  wire  _GEN_15 = _T_17 ? 1'h0 : validReg; // @[Conditional.scala 39:67 Rx.scala 87:16 Rx.scala 23:25]
-  wire [7:0] _GEN_16 = _T_13 ? _GEN_7 : clockCount; // @[Conditional.scala 39:67 Rx.scala 21:27]
-  wire [2:0] _GEN_17 = _T_13 ? _GEN_12 : _GEN_14; // @[Conditional.scala 39:67]
-  wire  _GEN_18 = _T_13 ? _GEN_13 : _GEN_15; // @[Conditional.scala 39:67]
-  assign io_valid = validReg; // @[Rx.scala 93:12]
-  assign io_data = shiftReg; // @[Rx.scala 91:11]
-  always @(posedge clock) begin
-    if (reset) begin // @[Rx.scala 19:25]
-      stateReg <= 3'h0; // @[Rx.scala 19:25]
-    end else if (_T) begin // @[Conditional.scala 40:58]
-      if (~io_rxd) begin // @[Rx.scala 34:28]
-        stateReg <= 3'h1; // @[Rx.scala 35:18]
-      end else begin
-        stateReg <= 3'h0; // @[Rx.scala 37:18]
-      end
-    end else if (_T_2) begin // @[Conditional.scala 39:67]
-      if (_GEN_34 == _T_5) begin // @[Rx.scala 42:57]
-        stateReg <= _GEN_2;
-      end else begin
-        stateReg <= 3'h1; // @[Rx.scala 51:18]
-      end
-    end else if (_T_8) begin // @[Conditional.scala 39:67]
-      stateReg <= _GEN_8;
-    end else begin
-      stateReg <= _GEN_17;
-    end
-    if (reset) begin // @[Rx.scala 21:27]
-      clockCount <= 8'h0; // @[Rx.scala 21:27]
-    end else if (_T) begin // @[Conditional.scala 40:58]
-      clockCount <= 8'h0; // @[Rx.scala 31:18]
-    end else if (_T_2) begin // @[Conditional.scala 39:67]
-      if (_GEN_34 == _T_5) begin // @[Rx.scala 42:57]
-        clockCount <= _GEN_1;
-      end else begin
-        clockCount <= _clockCount_T_1; // @[Rx.scala 50:20]
-      end
-    end else if (_T_8) begin // @[Conditional.scala 39:67]
-      clockCount <= _GEN_7;
-    end else begin
-      clockCount <= _GEN_16;
-    end
-    if (reset) begin // @[Rx.scala 22:25]
-      bitIndex <= 4'h0; // @[Rx.scala 22:25]
-    end else if (_T) begin // @[Conditional.scala 40:58]
-      bitIndex <= 4'h0; // @[Rx.scala 32:16]
-    end else if (!(_T_2)) begin // @[Conditional.scala 39:67]
-      if (_T_8) begin // @[Conditional.scala 39:67]
-        bitIndex <= _GEN_10;
-      end
-    end
-    if (reset) begin // @[Rx.scala 23:25]
-      validReg <= 1'h0; // @[Rx.scala 23:25]
-    end else if (_T) begin // @[Conditional.scala 40:58]
-      validReg <= 1'h0; // @[Rx.scala 30:16]
-    end else if (!(_T_2)) begin // @[Conditional.scala 39:67]
-      if (!(_T_8)) begin // @[Conditional.scala 39:67]
-        validReg <= _GEN_18;
-      end
-    end
-    rxReg_REG <= reset | io_rxd; // @[Rx.scala 25:30 Rx.scala 25:30 Rx.scala 25:30]
-    rxReg <= reset | rxReg_REG; // @[Rx.scala 25:22 Rx.scala 25:22 Rx.scala 25:22]
-    if (reset) begin // @[Rx.scala 26:25]
-      shiftReg <= 8'h41; // @[Rx.scala 26:25]
-    end else if (!(_T)) begin // @[Conditional.scala 40:58]
-      if (!(_T_2)) begin // @[Conditional.scala 39:67]
-        if (_T_8) begin // @[Conditional.scala 39:67]
-          shiftReg <= _GEN_9;
-        end
-      end
-    end
-  end
-// Register and memory initialization
-`ifdef RANDOMIZE_GARBAGE_ASSIGN
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_INVALID_ASSIGN
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_REG_INIT
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_MEM_INIT
-`define RANDOMIZE
-`endif
-`ifndef RANDOM
-`define RANDOM $random
-`endif
-`ifdef RANDOMIZE_MEM_INIT
-  integer initvar;
-`endif
-`ifndef SYNTHESIS
-`ifdef FIRRTL_BEFORE_INITIAL
-`FIRRTL_BEFORE_INITIAL
-`endif
-initial begin
-  `ifdef RANDOMIZE
-    `ifdef INIT_RANDOM
-      `INIT_RANDOM
-    `endif
-    `ifndef VERILATOR
-      `ifdef RANDOMIZE_DELAY
-        #`RANDOMIZE_DELAY begin end
-      `else
-        #0.002 begin end
-      `endif
-    `endif
-`ifdef RANDOMIZE_REG_INIT
-  _RAND_0 = {1{`RANDOM}};
-  stateReg = _RAND_0[2:0];
-  _RAND_1 = {1{`RANDOM}};
-  clockCount = _RAND_1[7:0];
-  _RAND_2 = {1{`RANDOM}};
-  bitIndex = _RAND_2[3:0];
-  _RAND_3 = {1{`RANDOM}};
-  validReg = _RAND_3[0:0];
-  _RAND_4 = {1{`RANDOM}};
-  rxReg_REG = _RAND_4[0:0];
-  _RAND_5 = {1{`RANDOM}};
-  rxReg = _RAND_5[0:0];
-  _RAND_6 = {1{`RANDOM}};
-  shiftReg = _RAND_6[7:0];
-`endif // RANDOMIZE_REG_INIT
-  `endif // RANDOMIZE
-end // initial
-`ifdef FIRRTL_AFTER_INITIAL
-`FIRRTL_AFTER_INITIAL
-`endif
-`endif // SYNTHESIS
-endmodule
-module PUart(
-  input         clock,
-  input         reset,
-  input         io_isStalled,
-  output [31:0] io_rx_data_o,
-  output [7:0]  io_addr_o,
-  input  [15:0] io_CLK_PER_BIT,
-  input         io_rxd,
-  output        io_valid,
-  output        io_done
-);
-`ifdef RANDOMIZE_REG_INIT
-  reg [31:0] _RAND_0;
-  reg [31:0] _RAND_1;
-  reg [31:0] _RAND_2;
-  reg [31:0] _RAND_3;
-  reg [31:0] _RAND_4;
-  reg [31:0] _RAND_5;
-  reg [31:0] _RAND_6;
-  reg [31:0] _RAND_7;
-  reg [31:0] _RAND_8;
-`endif // RANDOMIZE_REG_INIT
-  wire  rx_clock; // @[PUart.scala 25:18]
-  wire  rx_reset; // @[PUart.scala 25:18]
-  wire [15:0] rx_io_CLK_PER_BIT; // @[PUart.scala 25:18]
-  wire  rx_io_rxd; // @[PUart.scala 25:18]
-  wire  rx_io_valid; // @[PUart.scala 25:18]
-  wire [7:0] rx_io_data; // @[PUart.scala 25:18]
-  reg  regDone; // @[PUart.scala 19:24]
-  reg [2:0] count; // @[PUart.scala 20:22]
-  reg [31:0] regFinalData; // @[PUart.scala 21:29]
-  reg [13:0] regAddr; // @[PUart.scala 22:24]
-  reg  regValid; // @[PUart.scala 23:25]
-  reg [7:0] dataReg; // @[PUart.scala 30:24]
-  reg [7:0] regLSB1; // @[PUart.scala 31:24]
-  reg [7:0] regLSB2; // @[PUart.scala 32:24]
-  reg [7:0] regMSB1; // @[PUart.scala 33:24]
-  wire [2:0] _count_T_1 = count + 3'h1; // @[PUart.scala 41:22]
-  wire  _GEN_2 = rx_io_valid ? 1'h0 : regValid; // @[PUart.scala 37:31 PUart.scala 42:16 PUart.scala 23:25]
-  wire  _GEN_5 = io_isStalled & ~regDone ? _GEN_2 : regValid; // @[PUart.scala 36:34 PUart.scala 23:25]
-  wire  _T_3 = 3'h1 == count; // @[Conditional.scala 37:30]
-  wire  _T_4 = 3'h2 == count; // @[Conditional.scala 37:30]
-  wire  _T_5 = 3'h3 == count; // @[Conditional.scala 37:30]
-  wire  _T_6 = 3'h4 == count; // @[Conditional.scala 37:30]
-  wire [31:0] data = {dataReg,regMSB1,regLSB2,regLSB1}; // @[Cat.scala 30:58]
-  wire [13:0] _regAddr_T_1 = regAddr + 14'h1; // @[PUart.scala 65:28]
-  wire  _GEN_6 = data == 32'hfff | regDone; // @[PUart.scala 58:36 PUart.scala 59:17 PUart.scala 19:24]
-  wire [31:0] _GEN_7 = data == 32'hfff ? 32'h0 : data; // @[PUart.scala 58:36 PUart.scala 60:22 PUart.scala 64:22]
-  wire [13:0] _GEN_8 = data == 32'hfff ? 14'h0 : _regAddr_T_1; // @[PUart.scala 58:36 PUart.scala 61:17 PUart.scala 65:17]
-  wire  _GEN_9 = data == 32'hfff ? 1'h0 : 1'h1; // @[PUart.scala 58:36 PUart.scala 62:18 PUart.scala 66:18]
-  wire  _GEN_10 = _T_6 ? _GEN_6 : regDone; // @[Conditional.scala 39:67 PUart.scala 19:24]
-  wire [31:0] _GEN_11 = _T_6 ? _GEN_7 : regFinalData; // @[Conditional.scala 39:67 PUart.scala 21:29]
-  wire [13:0] _GEN_12 = _T_6 ? _GEN_8 : regAddr; // @[Conditional.scala 39:67 PUart.scala 22:24]
-  wire  _GEN_13 = _T_6 ? _GEN_9 : _GEN_5; // @[Conditional.scala 39:67]
-  Rx rx ( // @[PUart.scala 25:18]
-    .clock(rx_clock),
-    .reset(rx_reset),
-    .io_CLK_PER_BIT(rx_io_CLK_PER_BIT),
-    .io_rxd(rx_io_rxd),
-    .io_valid(rx_io_valid),
-    .io_data(rx_io_data)
-  );
-  assign io_rx_data_o = regFinalData; // @[PUart.scala 77:16]
-  assign io_addr_o = regAddr[7:0]; // @[PUart.scala 76:13]
-  assign io_valid = regValid; // @[PUart.scala 78:12]
-  assign io_done = regDone; // @[PUart.scala 79:11]
-  assign rx_clock = clock;
-  assign rx_reset = reset;
-  assign rx_io_CLK_PER_BIT = io_CLK_PER_BIT; // @[PUart.scala 27:21]
-  assign rx_io_rxd = io_rxd; // @[PUart.scala 28:13]
-  always @(posedge clock) begin
-    if (reset) begin // @[PUart.scala 19:24]
-      regDone <= 1'h0; // @[PUart.scala 19:24]
-    end else if (!(_T_3)) begin // @[Conditional.scala 40:58]
-      if (!(_T_4)) begin // @[Conditional.scala 39:67]
-        if (!(_T_5)) begin // @[Conditional.scala 39:67]
-          regDone <= _GEN_10;
-        end
-      end
-    end
-    if (reset) begin // @[PUart.scala 20:22]
-      count <= 3'h0; // @[PUart.scala 20:22]
-    end else if (count == 3'h4) begin // @[PUart.scala 72:23]
-      count <= 3'h0; // @[PUart.scala 73:11]
-    end else if (io_isStalled & ~regDone) begin // @[PUart.scala 36:34]
-      if (rx_io_valid) begin // @[PUart.scala 37:31]
-        count <= _count_T_1; // @[PUart.scala 41:13]
-      end
-    end
-    if (reset) begin // @[PUart.scala 21:29]
-      regFinalData <= 32'h0; // @[PUart.scala 21:29]
-    end else if (!(_T_3)) begin // @[Conditional.scala 40:58]
-      if (!(_T_4)) begin // @[Conditional.scala 39:67]
-        if (!(_T_5)) begin // @[Conditional.scala 39:67]
-          regFinalData <= _GEN_11;
-        end
-      end
-    end
-    if (reset) begin // @[PUart.scala 22:24]
-      regAddr <= 14'h3fff; // @[PUart.scala 22:24]
-    end else if (!(_T_3)) begin // @[Conditional.scala 40:58]
-      if (!(_T_4)) begin // @[Conditional.scala 39:67]
-        if (!(_T_5)) begin // @[Conditional.scala 39:67]
-          regAddr <= _GEN_12;
-        end
-      end
-    end
-    if (reset) begin // @[PUart.scala 23:25]
-      regValid <= 1'h0; // @[PUart.scala 23:25]
-    end else if (_T_3) begin // @[Conditional.scala 40:58]
-      regValid <= _GEN_5;
-    end else if (_T_4) begin // @[Conditional.scala 39:67]
-      regValid <= _GEN_5;
-    end else if (_T_5) begin // @[Conditional.scala 39:67]
-      regValid <= _GEN_5;
-    end else begin
-      regValid <= _GEN_13;
-    end
-    if (reset) begin // @[PUart.scala 30:24]
-      dataReg <= 8'h0; // @[PUart.scala 30:24]
-    end else if (io_isStalled & ~regDone) begin // @[PUart.scala 36:34]
-      if (rx_io_valid) begin // @[PUart.scala 37:31]
-        dataReg <= rx_io_data; // @[PUart.scala 40:15]
-      end
-    end
-    if (reset) begin // @[PUart.scala 31:24]
-      regLSB1 <= 8'h0; // @[PUart.scala 31:24]
-    end else if (_T_3) begin // @[Conditional.scala 40:58]
-      regLSB1 <= dataReg; // @[PUart.scala 47:15]
-    end
-    if (reset) begin // @[PUart.scala 32:24]
-      regLSB2 <= 8'h0; // @[PUart.scala 32:24]
-    end else if (!(_T_3)) begin // @[Conditional.scala 40:58]
-      if (_T_4) begin // @[Conditional.scala 39:67]
-        regLSB2 <= dataReg; // @[PUart.scala 50:15]
-      end
-    end
-    if (reset) begin // @[PUart.scala 33:24]
-      regMSB1 <= 8'h0; // @[PUart.scala 33:24]
-    end else if (!(_T_3)) begin // @[Conditional.scala 40:58]
-      if (!(_T_4)) begin // @[Conditional.scala 39:67]
-        if (_T_5) begin // @[Conditional.scala 39:67]
-          regMSB1 <= dataReg; // @[PUart.scala 53:15]
-        end
-      end
-    end
-  end
-// Register and memory initialization
-`ifdef RANDOMIZE_GARBAGE_ASSIGN
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_INVALID_ASSIGN
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_REG_INIT
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_MEM_INIT
-`define RANDOMIZE
-`endif
-`ifndef RANDOM
-`define RANDOM $random
-`endif
-`ifdef RANDOMIZE_MEM_INIT
-  integer initvar;
-`endif
-`ifndef SYNTHESIS
-`ifdef FIRRTL_BEFORE_INITIAL
-`FIRRTL_BEFORE_INITIAL
-`endif
-initial begin
-  `ifdef RANDOMIZE
-    `ifdef INIT_RANDOM
-      `INIT_RANDOM
-    `endif
-    `ifndef VERILATOR
-      `ifdef RANDOMIZE_DELAY
-        #`RANDOMIZE_DELAY begin end
-      `else
-        #0.002 begin end
-      `endif
-    `endif
-`ifdef RANDOMIZE_REG_INIT
-  _RAND_0 = {1{`RANDOM}};
-  regDone = _RAND_0[0:0];
-  _RAND_1 = {1{`RANDOM}};
-  count = _RAND_1[2:0];
-  _RAND_2 = {1{`RANDOM}};
-  regFinalData = _RAND_2[31:0];
-  _RAND_3 = {1{`RANDOM}};
-  regAddr = _RAND_3[13:0];
-  _RAND_4 = {1{`RANDOM}};
-  regValid = _RAND_4[0:0];
-  _RAND_5 = {1{`RANDOM}};
-  dataReg = _RAND_5[7:0];
-  _RAND_6 = {1{`RANDOM}};
-  regLSB1 = _RAND_6[7:0];
-  _RAND_7 = {1{`RANDOM}};
-  regLSB2 = _RAND_7[7:0];
-  _RAND_8 = {1{`RANDOM}};
-  regMSB1 = _RAND_8[7:0];
-`endif // RANDOMIZE_REG_INIT
-  `endif // RANDOMIZE
-end // initial
-`ifdef FIRRTL_AFTER_INITIAL
-`FIRRTL_AFTER_INITIAL
-`endif
-`endif // SYNTHESIS
-endmodule
-module Caravel_Top(
+module Top(
   input         clock,
   input         reset,
   output [31:0] io_gpio_o,
   output [31:0] io_gpio_en_o,
   input  [31:0] io_gpio_i,
-  input         io_rx_i,
-  input  [15:0] io_CLK_PER_BIT
+  input         io_rx_we_i,
+  input  [31:0] io_rx_addr_i,
+  input  [31:0] io_rx_wdata_i,
+  input         io_rx_reset_i
 );
-`ifdef RANDOMIZE_REG_INIT
-  reg [31:0] _RAND_0;
-  reg [31:0] _RAND_1;
-  reg [31:0] _RAND_2;
-  reg [31:0] _RAND_3;
-`endif // RANDOMIZE_REG_INIT
-  wire  gen_imem_host_clock; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_reset; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_io_wbMasterTransmitter_ready; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_io_wbMasterTransmitter_valid; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_io_wbMasterTransmitter_bits_cyc; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_io_wbMasterTransmitter_bits_stb; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_io_wbMasterTransmitter_bits_we; // @[WBGenerator.scala 158:29]
-  wire [31:0] gen_imem_host_io_wbMasterTransmitter_bits_adr; // @[WBGenerator.scala 158:29]
-  wire [31:0] gen_imem_host_io_wbMasterTransmitter_bits_dat; // @[WBGenerator.scala 158:29]
-  wire [3:0] gen_imem_host_io_wbMasterTransmitter_bits_sel; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_io_wbSlaveReceiver_ready; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_io_wbSlaveReceiver_bits_ack; // @[WBGenerator.scala 158:29]
-  wire [31:0] gen_imem_host_io_wbSlaveReceiver_bits_dat; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_io_wbSlaveReceiver_bits_err; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_io_reqIn_ready; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_io_reqIn_valid; // @[WBGenerator.scala 158:29]
-  wire [31:0] gen_imem_host_io_reqIn_bits_addrRequest; // @[WBGenerator.scala 158:29]
-  wire [31:0] gen_imem_host_io_reqIn_bits_dataRequest; // @[WBGenerator.scala 158:29]
-  wire [3:0] gen_imem_host_io_reqIn_bits_activeByteLane; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_io_reqIn_bits_isWrite; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_host_io_rspOut_valid; // @[WBGenerator.scala 158:29]
-  wire [31:0] gen_imem_host_io_rspOut_bits_dataResponse; // @[WBGenerator.scala 158:29]
-  wire  gen_imem_slave_io_wbSlaveTransmitter_ready; // @[WBGenerator.scala 159:30]
-  wire  gen_imem_slave_io_wbSlaveTransmitter_bits_ack; // @[WBGenerator.scala 159:30]
-  wire [31:0] gen_imem_slave_io_wbSlaveTransmitter_bits_dat; // @[WBGenerator.scala 159:30]
-  wire  gen_imem_slave_io_wbSlaveTransmitter_bits_err; // @[WBGenerator.scala 159:30]
-  wire  gen_imem_slave_io_wbMasterReceiver_ready; // @[WBGenerator.scala 159:30]
-  wire  gen_imem_slave_io_wbMasterReceiver_valid; // @[WBGenerator.scala 159:30]
-  wire  gen_imem_slave_io_wbMasterReceiver_bits_cyc; // @[WBGenerator.scala 159:30]
-  wire  gen_imem_slave_io_wbMasterReceiver_bits_stb; // @[WBGenerator.scala 159:30]
-  wire  gen_imem_slave_io_wbMasterReceiver_bits_we; // @[WBGenerator.scala 159:30]
-  wire [31:0] gen_imem_slave_io_wbMasterReceiver_bits_adr; // @[WBGenerator.scala 159:30]
-  wire [31:0] gen_imem_slave_io_wbMasterReceiver_bits_dat; // @[WBGenerator.scala 159:30]
-  wire [3:0] gen_imem_slave_io_wbMasterReceiver_bits_sel; // @[WBGenerator.scala 159:30]
-  wire  gen_imem_slave_io_reqOut_valid; // @[WBGenerator.scala 159:30]
-  wire [31:0] gen_imem_slave_io_reqOut_bits_addrRequest; // @[WBGenerator.scala 159:30]
-  wire [31:0] gen_imem_slave_io_reqOut_bits_dataRequest; // @[WBGenerator.scala 159:30]
-  wire [3:0] gen_imem_slave_io_reqOut_bits_activeByteLane; // @[WBGenerator.scala 159:30]
-  wire  gen_imem_slave_io_reqOut_bits_isWrite; // @[WBGenerator.scala 159:30]
-  wire  gen_imem_slave_io_rspIn_valid; // @[WBGenerator.scala 159:30]
-  wire [31:0] gen_imem_slave_io_rspIn_bits_dataResponse; // @[WBGenerator.scala 159:30]
-  wire  gen_imem_slave_io_rspIn_bits_error; // @[WBGenerator.scala 159:30]
-  wire  gen_dmem_host_clock; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_reset; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_io_wbMasterTransmitter_ready; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_io_wbMasterTransmitter_valid; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_io_wbMasterTransmitter_bits_cyc; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_io_wbMasterTransmitter_bits_stb; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_io_wbMasterTransmitter_bits_we; // @[WBGenerator.scala 160:29]
-  wire [31:0] gen_dmem_host_io_wbMasterTransmitter_bits_adr; // @[WBGenerator.scala 160:29]
-  wire [31:0] gen_dmem_host_io_wbMasterTransmitter_bits_dat; // @[WBGenerator.scala 160:29]
-  wire [3:0] gen_dmem_host_io_wbMasterTransmitter_bits_sel; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_io_wbSlaveReceiver_ready; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_io_wbSlaveReceiver_bits_ack; // @[WBGenerator.scala 160:29]
-  wire [31:0] gen_dmem_host_io_wbSlaveReceiver_bits_dat; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_io_wbSlaveReceiver_bits_err; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_io_reqIn_ready; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_io_reqIn_valid; // @[WBGenerator.scala 160:29]
-  wire [31:0] gen_dmem_host_io_reqIn_bits_addrRequest; // @[WBGenerator.scala 160:29]
-  wire [31:0] gen_dmem_host_io_reqIn_bits_dataRequest; // @[WBGenerator.scala 160:29]
-  wire [3:0] gen_dmem_host_io_reqIn_bits_activeByteLane; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_io_reqIn_bits_isWrite; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_host_io_rspOut_valid; // @[WBGenerator.scala 160:29]
-  wire [31:0] gen_dmem_host_io_rspOut_bits_dataResponse; // @[WBGenerator.scala 160:29]
-  wire  gen_dmem_slave_io_wbSlaveTransmitter_ready; // @[WBGenerator.scala 161:30]
-  wire  gen_dmem_slave_io_wbSlaveTransmitter_bits_ack; // @[WBGenerator.scala 161:30]
-  wire [31:0] gen_dmem_slave_io_wbSlaveTransmitter_bits_dat; // @[WBGenerator.scala 161:30]
-  wire  gen_dmem_slave_io_wbSlaveTransmitter_bits_err; // @[WBGenerator.scala 161:30]
-  wire  gen_dmem_slave_io_wbMasterReceiver_ready; // @[WBGenerator.scala 161:30]
-  wire  gen_dmem_slave_io_wbMasterReceiver_valid; // @[WBGenerator.scala 161:30]
-  wire  gen_dmem_slave_io_wbMasterReceiver_bits_cyc; // @[WBGenerator.scala 161:30]
-  wire  gen_dmem_slave_io_wbMasterReceiver_bits_stb; // @[WBGenerator.scala 161:30]
-  wire  gen_dmem_slave_io_wbMasterReceiver_bits_we; // @[WBGenerator.scala 161:30]
-  wire [31:0] gen_dmem_slave_io_wbMasterReceiver_bits_adr; // @[WBGenerator.scala 161:30]
-  wire [31:0] gen_dmem_slave_io_wbMasterReceiver_bits_dat; // @[WBGenerator.scala 161:30]
-  wire [3:0] gen_dmem_slave_io_wbMasterReceiver_bits_sel; // @[WBGenerator.scala 161:30]
-  wire  gen_dmem_slave_io_reqOut_valid; // @[WBGenerator.scala 161:30]
-  wire [31:0] gen_dmem_slave_io_reqOut_bits_addrRequest; // @[WBGenerator.scala 161:30]
-  wire [31:0] gen_dmem_slave_io_reqOut_bits_dataRequest; // @[WBGenerator.scala 161:30]
-  wire [3:0] gen_dmem_slave_io_reqOut_bits_activeByteLane; // @[WBGenerator.scala 161:30]
-  wire  gen_dmem_slave_io_reqOut_bits_isWrite; // @[WBGenerator.scala 161:30]
-  wire  gen_dmem_slave_io_rspIn_valid; // @[WBGenerator.scala 161:30]
-  wire [31:0] gen_dmem_slave_io_rspIn_bits_dataResponse; // @[WBGenerator.scala 161:30]
-  wire  gen_dmem_slave_io_rspIn_bits_error; // @[WBGenerator.scala 161:30]
-  wire  gpio_clock; // @[WBGenerator.scala 165:20]
-  wire  gpio_reset; // @[WBGenerator.scala 165:20]
-  wire  gpio_io_req_valid; // @[WBGenerator.scala 165:20]
-  wire [31:0] gpio_io_req_bits_addrRequest; // @[WBGenerator.scala 165:20]
-  wire [31:0] gpio_io_req_bits_dataRequest; // @[WBGenerator.scala 165:20]
-  wire [3:0] gpio_io_req_bits_activeByteLane; // @[WBGenerator.scala 165:20]
-  wire  gpio_io_req_bits_isWrite; // @[WBGenerator.scala 165:20]
-  wire  gpio_io_rsp_valid; // @[WBGenerator.scala 165:20]
-  wire [31:0] gpio_io_rsp_bits_dataResponse; // @[WBGenerator.scala 165:20]
-  wire  gpio_io_rsp_bits_error; // @[WBGenerator.scala 165:20]
-  wire [31:0] gpio_io_cio_gpio_i; // @[WBGenerator.scala 165:20]
-  wire [31:0] gpio_io_cio_gpio_o; // @[WBGenerator.scala 165:20]
-  wire [31:0] gpio_io_cio_gpio_en_o; // @[WBGenerator.scala 165:20]
-  wire  gen_gpio_slave_io_wbSlaveTransmitter_ready; // @[WBGenerator.scala 166:30]
-  wire  gen_gpio_slave_io_wbSlaveTransmitter_bits_ack; // @[WBGenerator.scala 166:30]
-  wire [31:0] gen_gpio_slave_io_wbSlaveTransmitter_bits_dat; // @[WBGenerator.scala 166:30]
-  wire  gen_gpio_slave_io_wbSlaveTransmitter_bits_err; // @[WBGenerator.scala 166:30]
-  wire  gen_gpio_slave_io_wbMasterReceiver_ready; // @[WBGenerator.scala 166:30]
-  wire  gen_gpio_slave_io_wbMasterReceiver_valid; // @[WBGenerator.scala 166:30]
-  wire  gen_gpio_slave_io_wbMasterReceiver_bits_cyc; // @[WBGenerator.scala 166:30]
-  wire  gen_gpio_slave_io_wbMasterReceiver_bits_stb; // @[WBGenerator.scala 166:30]
-  wire  gen_gpio_slave_io_wbMasterReceiver_bits_we; // @[WBGenerator.scala 166:30]
-  wire [31:0] gen_gpio_slave_io_wbMasterReceiver_bits_adr; // @[WBGenerator.scala 166:30]
-  wire [31:0] gen_gpio_slave_io_wbMasterReceiver_bits_dat; // @[WBGenerator.scala 166:30]
-  wire [3:0] gen_gpio_slave_io_wbMasterReceiver_bits_sel; // @[WBGenerator.scala 166:30]
-  wire  gen_gpio_slave_io_reqOut_valid; // @[WBGenerator.scala 166:30]
-  wire [31:0] gen_gpio_slave_io_reqOut_bits_addrRequest; // @[WBGenerator.scala 166:30]
-  wire [31:0] gen_gpio_slave_io_reqOut_bits_dataRequest; // @[WBGenerator.scala 166:30]
-  wire [3:0] gen_gpio_slave_io_reqOut_bits_activeByteLane; // @[WBGenerator.scala 166:30]
-  wire  gen_gpio_slave_io_reqOut_bits_isWrite; // @[WBGenerator.scala 166:30]
-  wire  gen_gpio_slave_io_rspIn_valid; // @[WBGenerator.scala 166:30]
-  wire [31:0] gen_gpio_slave_io_rspIn_bits_dataResponse; // @[WBGenerator.scala 166:30]
-  wire  gen_gpio_slave_io_rspIn_bits_error; // @[WBGenerator.scala 166:30]
-  wire  imem_clock; // @[WBGenerator.scala 265:20]
-  wire  imem_reset; // @[WBGenerator.scala 265:20]
-  wire  imem_io_req_valid; // @[WBGenerator.scala 265:20]
-  wire [31:0] imem_io_req_bits_addrRequest; // @[WBGenerator.scala 265:20]
-  wire [31:0] imem_io_req_bits_dataRequest; // @[WBGenerator.scala 265:20]
-  wire [3:0] imem_io_req_bits_activeByteLane; // @[WBGenerator.scala 265:20]
-  wire  imem_io_req_bits_isWrite; // @[WBGenerator.scala 265:20]
-  wire  imem_io_rsp_valid; // @[WBGenerator.scala 265:20]
-  wire [31:0] imem_io_rsp_bits_dataResponse; // @[WBGenerator.scala 265:20]
-  wire  dmem_clock; // @[WBGenerator.scala 266:20]
-  wire  dmem_reset; // @[WBGenerator.scala 266:20]
-  wire  dmem_io_req_valid; // @[WBGenerator.scala 266:20]
-  wire [31:0] dmem_io_req_bits_addrRequest; // @[WBGenerator.scala 266:20]
-  wire [31:0] dmem_io_req_bits_dataRequest; // @[WBGenerator.scala 266:20]
-  wire [3:0] dmem_io_req_bits_activeByteLane; // @[WBGenerator.scala 266:20]
-  wire  dmem_io_req_bits_isWrite; // @[WBGenerator.scala 266:20]
-  wire  dmem_io_rsp_valid; // @[WBGenerator.scala 266:20]
-  wire [31:0] dmem_io_rsp_bits_dataResponse; // @[WBGenerator.scala 266:20]
-  wire  wbErr_clock; // @[WBGenerator.scala 268:21]
-  wire  wbErr_reset; // @[WBGenerator.scala 268:21]
-  wire [31:0] wbErr_io_wbSlaveTransmitter_bits_dat; // @[WBGenerator.scala 268:21]
-  wire  wbErr_io_wbSlaveTransmitter_bits_err; // @[WBGenerator.scala 268:21]
-  wire  wbErr_io_wbMasterReceiver_valid; // @[WBGenerator.scala 268:21]
-  wire  wbErr_io_wbMasterReceiver_bits_cyc; // @[WBGenerator.scala 268:21]
-  wire  wbErr_io_wbMasterReceiver_bits_stb; // @[WBGenerator.scala 268:21]
-  wire  core_clock; // @[WBGenerator.scala 269:20]
-  wire  core_reset; // @[WBGenerator.scala 269:20]
-  wire  core_io_stall; // @[WBGenerator.scala 269:20]
-  wire  core_io_dmemReq_valid; // @[WBGenerator.scala 269:20]
-  wire [31:0] core_io_dmemReq_bits_addrRequest; // @[WBGenerator.scala 269:20]
-  wire [31:0] core_io_dmemReq_bits_dataRequest; // @[WBGenerator.scala 269:20]
-  wire [3:0] core_io_dmemReq_bits_activeByteLane; // @[WBGenerator.scala 269:20]
-  wire  core_io_dmemReq_bits_isWrite; // @[WBGenerator.scala 269:20]
-  wire  core_io_dmemRsp_valid; // @[WBGenerator.scala 269:20]
-  wire [31:0] core_io_dmemRsp_bits_dataResponse; // @[WBGenerator.scala 269:20]
-  wire  core_io_imemReq_ready; // @[WBGenerator.scala 269:20]
-  wire  core_io_imemReq_valid; // @[WBGenerator.scala 269:20]
-  wire [31:0] core_io_imemReq_bits_addrRequest; // @[WBGenerator.scala 269:20]
-  wire  core_io_imemRsp_valid; // @[WBGenerator.scala 269:20]
-  wire [31:0] core_io_imemRsp_bits_dataResponse; // @[WBGenerator.scala 269:20]
-  wire  switch_io_hostIn_valid; // @[WBGenerator.scala 282:22]
-  wire  switch_io_hostIn_bits_cyc; // @[WBGenerator.scala 282:22]
-  wire  switch_io_hostIn_bits_stb; // @[WBGenerator.scala 282:22]
-  wire  switch_io_hostIn_bits_we; // @[WBGenerator.scala 282:22]
-  wire [31:0] switch_io_hostIn_bits_adr; // @[WBGenerator.scala 282:22]
-  wire [31:0] switch_io_hostIn_bits_dat; // @[WBGenerator.scala 282:22]
-  wire [3:0] switch_io_hostIn_bits_sel; // @[WBGenerator.scala 282:22]
-  wire  switch_io_hostOut_bits_ack; // @[WBGenerator.scala 282:22]
-  wire [31:0] switch_io_hostOut_bits_dat; // @[WBGenerator.scala 282:22]
-  wire  switch_io_hostOut_bits_err; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devOut_0_valid; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devOut_0_bits_cyc; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devOut_0_bits_stb; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devOut_0_bits_we; // @[WBGenerator.scala 282:22]
-  wire [31:0] switch_io_devOut_0_bits_adr; // @[WBGenerator.scala 282:22]
-  wire [31:0] switch_io_devOut_0_bits_dat; // @[WBGenerator.scala 282:22]
-  wire [3:0] switch_io_devOut_0_bits_sel; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devOut_1_valid; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devOut_1_bits_cyc; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devOut_1_bits_stb; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devOut_1_bits_we; // @[WBGenerator.scala 282:22]
-  wire [31:0] switch_io_devOut_1_bits_adr; // @[WBGenerator.scala 282:22]
-  wire [31:0] switch_io_devOut_1_bits_dat; // @[WBGenerator.scala 282:22]
-  wire [3:0] switch_io_devOut_1_bits_sel; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devOut_2_valid; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devOut_2_bits_cyc; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devOut_2_bits_stb; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devIn_0_bits_ack; // @[WBGenerator.scala 282:22]
-  wire [31:0] switch_io_devIn_0_bits_dat; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devIn_0_bits_err; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devIn_1_bits_ack; // @[WBGenerator.scala 282:22]
-  wire [31:0] switch_io_devIn_1_bits_dat; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devIn_1_bits_err; // @[WBGenerator.scala 282:22]
-  wire [31:0] switch_io_devIn_2_bits_dat; // @[WBGenerator.scala 282:22]
-  wire  switch_io_devIn_2_bits_err; // @[WBGenerator.scala 282:22]
-  wire [1:0] switch_io_devSel; // @[WBGenerator.scala 282:22]
-  wire  puart_clock; // @[WBGenerator.scala 285:21]
-  wire  puart_reset; // @[WBGenerator.scala 285:21]
-  wire  puart_io_isStalled; // @[WBGenerator.scala 285:21]
-  wire [31:0] puart_io_rx_data_o; // @[WBGenerator.scala 285:21]
-  wire [7:0] puart_io_addr_o; // @[WBGenerator.scala 285:21]
-  wire [15:0] puart_io_CLK_PER_BIT; // @[WBGenerator.scala 285:21]
-  wire  puart_io_rxd; // @[WBGenerator.scala 285:21]
-  wire  puart_io_valid; // @[WBGenerator.scala 285:21]
-  wire  puart_io_done; // @[WBGenerator.scala 285:21]
-  reg [1:0] state; // @[WBGenerator.scala 293:22]
-  reg  reset_reg; // @[WBGenerator.scala 294:26]
-  reg [31:0] rx_data_reg; // @[WBGenerator.scala 296:52]
-  reg [31:0] rx_addr_reg; // @[WBGenerator.scala 297:52]
-  wire [1:0] _GEN_1 = puart_io_done ? 2'h3 : 2'h1; // @[WBGenerator.scala 330:35 WBGenerator.scala 334:36 WBGenerator.scala 340:36]
-  wire [1:0] _GEN_2 = puart_io_valid ? 2'h2 : _GEN_1; // @[WBGenerator.scala 327:30 WBGenerator.scala 328:38]
-  wire [31:0] _rx_data_reg_T = puart_io_valid ? puart_io_rx_data_o : 32'h0; // @[WBGenerator.scala 353:52]
-  wire [9:0] _rx_addr_reg_T = {puart_io_addr_o, 2'h0}; // @[WBGenerator.scala 355:85]
-  wire [9:0] _rx_addr_reg_T_1 = puart_io_valid ? _rx_addr_reg_T : 10'h0; // @[WBGenerator.scala 355:52]
-  wire  _T_7 = state == 2'h2; // @[WBGenerator.scala 357:21]
-  wire [1:0] _GEN_4 = state == 2'h3 ? 2'h0 : state; // @[WBGenerator.scala 381:37 WBGenerator.scala 390:36 WBGenerator.scala 293:22]
-  wire [1:0] _GEN_5 = state == 2'h2 ? _GEN_1 : _GEN_4; // @[WBGenerator.scala 357:36]
-  wire [31:0] _GEN_7 = state == 2'h2 ? rx_addr_reg : 32'h0; // @[WBGenerator.scala 357:36 WBGenerator.scala 373:49 WBGenerator.scala 301:45]
-  wire [31:0] _GEN_8 = state == 2'h2 ? rx_data_reg : 32'h0; // @[WBGenerator.scala 357:36 WBGenerator.scala 374:49 WBGenerator.scala 302:45]
-  wire  _GEN_12 = state == 2'h1 ? 1'h0 : _T_7; // @[WBGenerator.scala 324:35 WBGenerator.scala 345:38]
-  wire  _GEN_13 = state == 2'h1 | _T_7; // @[WBGenerator.scala 324:35 WBGenerator.scala 346:33]
-  wire [31:0] _GEN_16 = state == 2'h1 ? 32'h0 : _GEN_7; // @[WBGenerator.scala 324:35 WBGenerator.scala 301:45]
-  wire [31:0] _GEN_17 = state == 2'h1 ? 32'h0 : _GEN_8; // @[WBGenerator.scala 324:35 WBGenerator.scala 302:45]
-  wire  _GEN_21 = state == 2'h0 ? 1'h0 : _GEN_12; // @[WBGenerator.scala 307:25 WBGenerator.scala 317:38]
-  wire  _GEN_22 = state == 2'h0 | _GEN_13; // @[WBGenerator.scala 307:25 WBGenerator.scala 321:23]
-  wire  _GEN_23 = state == 2'h0 ? 1'h0 : _GEN_13; // @[WBGenerator.scala 307:25 WBGenerator.scala 322:30]
-  wire [31:0] _GEN_26 = state == 2'h0 ? 32'h0 : _GEN_16; // @[WBGenerator.scala 307:25 WBGenerator.scala 301:45]
-  wire [31:0] _GEN_27 = state == 2'h0 ? 32'h0 : _GEN_17; // @[WBGenerator.scala 307:25 WBGenerator.scala 302:45]
-  wire [15:0] _GEN_32 = ~puart_io_done ? 16'hffff : 16'hf; // @[WBGenerator.scala 300:23 WBGenerator.scala 402:32]
-  wire [31:0] _switch_io_devSel_addr_hit_0_T_1 = 32'hfffff000 & gen_dmem_host_io_wbMasterTransmitter_bits_adr; // @[BusDecoder.scala 45:60]
-  wire  switch_io_devSel_addr_hit_0 = _switch_io_devSel_addr_hit_0_T_1 == 32'h40002000; // @[BusDecoder.scala 45:68]
+  wire  wb_imem_host_clock; // @[Top.scala 67:28]
+  wire  wb_imem_host_reset; // @[Top.scala 67:28]
+  wire  wb_imem_host_io_wbMasterTransmitter_ready; // @[Top.scala 67:28]
+  wire  wb_imem_host_io_wbMasterTransmitter_valid; // @[Top.scala 67:28]
+  wire  wb_imem_host_io_wbMasterTransmitter_bits_cyc; // @[Top.scala 67:28]
+  wire  wb_imem_host_io_wbMasterTransmitter_bits_stb; // @[Top.scala 67:28]
+  wire  wb_imem_host_io_wbMasterTransmitter_bits_we; // @[Top.scala 67:28]
+  wire [31:0] wb_imem_host_io_wbMasterTransmitter_bits_adr; // @[Top.scala 67:28]
+  wire [31:0] wb_imem_host_io_wbMasterTransmitter_bits_dat; // @[Top.scala 67:28]
+  wire [3:0] wb_imem_host_io_wbMasterTransmitter_bits_sel; // @[Top.scala 67:28]
+  wire  wb_imem_host_io_wbSlaveReceiver_ready; // @[Top.scala 67:28]
+  wire  wb_imem_host_io_wbSlaveReceiver_bits_ack; // @[Top.scala 67:28]
+  wire [31:0] wb_imem_host_io_wbSlaveReceiver_bits_dat; // @[Top.scala 67:28]
+  wire  wb_imem_host_io_wbSlaveReceiver_bits_err; // @[Top.scala 67:28]
+  wire  wb_imem_host_io_reqIn_ready; // @[Top.scala 67:28]
+  wire  wb_imem_host_io_reqIn_valid; // @[Top.scala 67:28]
+  wire [31:0] wb_imem_host_io_reqIn_bits_addrRequest; // @[Top.scala 67:28]
+  wire [31:0] wb_imem_host_io_reqIn_bits_dataRequest; // @[Top.scala 67:28]
+  wire [3:0] wb_imem_host_io_reqIn_bits_activeByteLane; // @[Top.scala 67:28]
+  wire  wb_imem_host_io_reqIn_bits_isWrite; // @[Top.scala 67:28]
+  wire  wb_imem_host_io_rspOut_valid; // @[Top.scala 67:28]
+  wire [31:0] wb_imem_host_io_rspOut_bits_dataResponse; // @[Top.scala 67:28]
+  wire  wb_imem_slave_io_wbSlaveTransmitter_ready; // @[Top.scala 68:29]
+  wire  wb_imem_slave_io_wbSlaveTransmitter_bits_ack; // @[Top.scala 68:29]
+  wire [31:0] wb_imem_slave_io_wbSlaveTransmitter_bits_dat; // @[Top.scala 68:29]
+  wire  wb_imem_slave_io_wbSlaveTransmitter_bits_err; // @[Top.scala 68:29]
+  wire  wb_imem_slave_io_wbMasterReceiver_ready; // @[Top.scala 68:29]
+  wire  wb_imem_slave_io_wbMasterReceiver_valid; // @[Top.scala 68:29]
+  wire  wb_imem_slave_io_wbMasterReceiver_bits_cyc; // @[Top.scala 68:29]
+  wire  wb_imem_slave_io_wbMasterReceiver_bits_stb; // @[Top.scala 68:29]
+  wire  wb_imem_slave_io_wbMasterReceiver_bits_we; // @[Top.scala 68:29]
+  wire [31:0] wb_imem_slave_io_wbMasterReceiver_bits_adr; // @[Top.scala 68:29]
+  wire [31:0] wb_imem_slave_io_wbMasterReceiver_bits_dat; // @[Top.scala 68:29]
+  wire [3:0] wb_imem_slave_io_wbMasterReceiver_bits_sel; // @[Top.scala 68:29]
+  wire  wb_imem_slave_io_reqOut_valid; // @[Top.scala 68:29]
+  wire [31:0] wb_imem_slave_io_reqOut_bits_addrRequest; // @[Top.scala 68:29]
+  wire [31:0] wb_imem_slave_io_reqOut_bits_dataRequest; // @[Top.scala 68:29]
+  wire [3:0] wb_imem_slave_io_reqOut_bits_activeByteLane; // @[Top.scala 68:29]
+  wire  wb_imem_slave_io_reqOut_bits_isWrite; // @[Top.scala 68:29]
+  wire  wb_imem_slave_io_rspIn_valid; // @[Top.scala 68:29]
+  wire [31:0] wb_imem_slave_io_rspIn_bits_dataResponse; // @[Top.scala 68:29]
+  wire  wb_imem_slave_io_rspIn_bits_error; // @[Top.scala 68:29]
+  wire  wb_dmem_host_clock; // @[Top.scala 69:28]
+  wire  wb_dmem_host_reset; // @[Top.scala 69:28]
+  wire  wb_dmem_host_io_wbMasterTransmitter_ready; // @[Top.scala 69:28]
+  wire  wb_dmem_host_io_wbMasterTransmitter_valid; // @[Top.scala 69:28]
+  wire  wb_dmem_host_io_wbMasterTransmitter_bits_cyc; // @[Top.scala 69:28]
+  wire  wb_dmem_host_io_wbMasterTransmitter_bits_stb; // @[Top.scala 69:28]
+  wire  wb_dmem_host_io_wbMasterTransmitter_bits_we; // @[Top.scala 69:28]
+  wire [31:0] wb_dmem_host_io_wbMasterTransmitter_bits_adr; // @[Top.scala 69:28]
+  wire [31:0] wb_dmem_host_io_wbMasterTransmitter_bits_dat; // @[Top.scala 69:28]
+  wire [3:0] wb_dmem_host_io_wbMasterTransmitter_bits_sel; // @[Top.scala 69:28]
+  wire  wb_dmem_host_io_wbSlaveReceiver_ready; // @[Top.scala 69:28]
+  wire  wb_dmem_host_io_wbSlaveReceiver_bits_ack; // @[Top.scala 69:28]
+  wire [31:0] wb_dmem_host_io_wbSlaveReceiver_bits_dat; // @[Top.scala 69:28]
+  wire  wb_dmem_host_io_wbSlaveReceiver_bits_err; // @[Top.scala 69:28]
+  wire  wb_dmem_host_io_reqIn_ready; // @[Top.scala 69:28]
+  wire  wb_dmem_host_io_reqIn_valid; // @[Top.scala 69:28]
+  wire [31:0] wb_dmem_host_io_reqIn_bits_addrRequest; // @[Top.scala 69:28]
+  wire [31:0] wb_dmem_host_io_reqIn_bits_dataRequest; // @[Top.scala 69:28]
+  wire [3:0] wb_dmem_host_io_reqIn_bits_activeByteLane; // @[Top.scala 69:28]
+  wire  wb_dmem_host_io_reqIn_bits_isWrite; // @[Top.scala 69:28]
+  wire  wb_dmem_host_io_rspOut_valid; // @[Top.scala 69:28]
+  wire [31:0] wb_dmem_host_io_rspOut_bits_dataResponse; // @[Top.scala 69:28]
+  wire  wb_dmem_slave_io_wbSlaveTransmitter_ready; // @[Top.scala 70:29]
+  wire  wb_dmem_slave_io_wbSlaveTransmitter_bits_ack; // @[Top.scala 70:29]
+  wire [31:0] wb_dmem_slave_io_wbSlaveTransmitter_bits_dat; // @[Top.scala 70:29]
+  wire  wb_dmem_slave_io_wbSlaveTransmitter_bits_err; // @[Top.scala 70:29]
+  wire  wb_dmem_slave_io_wbMasterReceiver_ready; // @[Top.scala 70:29]
+  wire  wb_dmem_slave_io_wbMasterReceiver_valid; // @[Top.scala 70:29]
+  wire  wb_dmem_slave_io_wbMasterReceiver_bits_cyc; // @[Top.scala 70:29]
+  wire  wb_dmem_slave_io_wbMasterReceiver_bits_stb; // @[Top.scala 70:29]
+  wire  wb_dmem_slave_io_wbMasterReceiver_bits_we; // @[Top.scala 70:29]
+  wire [31:0] wb_dmem_slave_io_wbMasterReceiver_bits_adr; // @[Top.scala 70:29]
+  wire [31:0] wb_dmem_slave_io_wbMasterReceiver_bits_dat; // @[Top.scala 70:29]
+  wire [3:0] wb_dmem_slave_io_wbMasterReceiver_bits_sel; // @[Top.scala 70:29]
+  wire  wb_dmem_slave_io_reqOut_valid; // @[Top.scala 70:29]
+  wire [31:0] wb_dmem_slave_io_reqOut_bits_addrRequest; // @[Top.scala 70:29]
+  wire [31:0] wb_dmem_slave_io_reqOut_bits_dataRequest; // @[Top.scala 70:29]
+  wire [3:0] wb_dmem_slave_io_reqOut_bits_activeByteLane; // @[Top.scala 70:29]
+  wire  wb_dmem_slave_io_reqOut_bits_isWrite; // @[Top.scala 70:29]
+  wire  wb_dmem_slave_io_rspIn_valid; // @[Top.scala 70:29]
+  wire [31:0] wb_dmem_slave_io_rspIn_bits_dataResponse; // @[Top.scala 70:29]
+  wire  wb_dmem_slave_io_rspIn_bits_error; // @[Top.scala 70:29]
+  wire  wb_gpio_slave_io_wbSlaveTransmitter_ready; // @[Top.scala 71:29]
+  wire  wb_gpio_slave_io_wbSlaveTransmitter_bits_ack; // @[Top.scala 71:29]
+  wire [31:0] wb_gpio_slave_io_wbSlaveTransmitter_bits_dat; // @[Top.scala 71:29]
+  wire  wb_gpio_slave_io_wbSlaveTransmitter_bits_err; // @[Top.scala 71:29]
+  wire  wb_gpio_slave_io_wbMasterReceiver_ready; // @[Top.scala 71:29]
+  wire  wb_gpio_slave_io_wbMasterReceiver_valid; // @[Top.scala 71:29]
+  wire  wb_gpio_slave_io_wbMasterReceiver_bits_cyc; // @[Top.scala 71:29]
+  wire  wb_gpio_slave_io_wbMasterReceiver_bits_stb; // @[Top.scala 71:29]
+  wire  wb_gpio_slave_io_wbMasterReceiver_bits_we; // @[Top.scala 71:29]
+  wire [31:0] wb_gpio_slave_io_wbMasterReceiver_bits_adr; // @[Top.scala 71:29]
+  wire [31:0] wb_gpio_slave_io_wbMasterReceiver_bits_dat; // @[Top.scala 71:29]
+  wire [3:0] wb_gpio_slave_io_wbMasterReceiver_bits_sel; // @[Top.scala 71:29]
+  wire  wb_gpio_slave_io_reqOut_valid; // @[Top.scala 71:29]
+  wire [31:0] wb_gpio_slave_io_reqOut_bits_addrRequest; // @[Top.scala 71:29]
+  wire [31:0] wb_gpio_slave_io_reqOut_bits_dataRequest; // @[Top.scala 71:29]
+  wire [3:0] wb_gpio_slave_io_reqOut_bits_activeByteLane; // @[Top.scala 71:29]
+  wire  wb_gpio_slave_io_reqOut_bits_isWrite; // @[Top.scala 71:29]
+  wire  wb_gpio_slave_io_rspIn_valid; // @[Top.scala 71:29]
+  wire [31:0] wb_gpio_slave_io_rspIn_bits_dataResponse; // @[Top.scala 71:29]
+  wire  wb_gpio_slave_io_rspIn_bits_error; // @[Top.scala 71:29]
+  wire  dmem_clock; // @[Top.scala 74:20]
+  wire  dmem_reset; // @[Top.scala 74:20]
+  wire  dmem_io_req_valid; // @[Top.scala 74:20]
+  wire [31:0] dmem_io_req_bits_addrRequest; // @[Top.scala 74:20]
+  wire [31:0] dmem_io_req_bits_dataRequest; // @[Top.scala 74:20]
+  wire [3:0] dmem_io_req_bits_activeByteLane; // @[Top.scala 74:20]
+  wire  dmem_io_req_bits_isWrite; // @[Top.scala 74:20]
+  wire  dmem_io_rsp_valid; // @[Top.scala 74:20]
+  wire [31:0] dmem_io_rsp_bits_dataResponse; // @[Top.scala 74:20]
+  wire  imem_clock; // @[Top.scala 75:20]
+  wire  imem_reset; // @[Top.scala 75:20]
+  wire  imem_io_req_valid; // @[Top.scala 75:20]
+  wire [31:0] imem_io_req_bits_addrRequest; // @[Top.scala 75:20]
+  wire  imem_io_req_bits_isWrite; // @[Top.scala 75:20]
+  wire  imem_io_rsp_valid; // @[Top.scala 75:20]
+  wire [31:0] imem_io_rsp_bits_dataResponse; // @[Top.scala 75:20]
+  wire  imem_io_writeEnable; // @[Top.scala 75:20]
+  wire [31:0] imem_io_addrIn; // @[Top.scala 75:20]
+  wire [31:0] imem_io_dataIn; // @[Top.scala 75:20]
+  wire  gpio_clock; // @[Top.scala 76:20]
+  wire  gpio_reset; // @[Top.scala 76:20]
+  wire  gpio_io_req_valid; // @[Top.scala 76:20]
+  wire [31:0] gpio_io_req_bits_addrRequest; // @[Top.scala 76:20]
+  wire [31:0] gpio_io_req_bits_dataRequest; // @[Top.scala 76:20]
+  wire [3:0] gpio_io_req_bits_activeByteLane; // @[Top.scala 76:20]
+  wire  gpio_io_req_bits_isWrite; // @[Top.scala 76:20]
+  wire  gpio_io_rsp_valid; // @[Top.scala 76:20]
+  wire [31:0] gpio_io_rsp_bits_dataResponse; // @[Top.scala 76:20]
+  wire  gpio_io_rsp_bits_error; // @[Top.scala 76:20]
+  wire [31:0] gpio_io_cio_gpio_i; // @[Top.scala 76:20]
+  wire [31:0] gpio_io_cio_gpio_o; // @[Top.scala 76:20]
+  wire [31:0] gpio_io_cio_gpio_en_o; // @[Top.scala 76:20]
+  wire  wbErr_clock; // @[Top.scala 77:21]
+  wire  wbErr_reset; // @[Top.scala 77:21]
+  wire [31:0] wbErr_io_wbSlaveTransmitter_bits_dat; // @[Top.scala 77:21]
+  wire  wbErr_io_wbSlaveTransmitter_bits_err; // @[Top.scala 77:21]
+  wire  wbErr_io_wbMasterReceiver_valid; // @[Top.scala 77:21]
+  wire  wbErr_io_wbMasterReceiver_bits_cyc; // @[Top.scala 77:21]
+  wire  wbErr_io_wbMasterReceiver_bits_stb; // @[Top.scala 77:21]
+  wire  core_clock; // @[Top.scala 79:20]
+  wire  core_reset; // @[Top.scala 79:20]
+  wire  core_io_dmemReq_valid; // @[Top.scala 79:20]
+  wire [31:0] core_io_dmemReq_bits_addrRequest; // @[Top.scala 79:20]
+  wire [31:0] core_io_dmemReq_bits_dataRequest; // @[Top.scala 79:20]
+  wire [3:0] core_io_dmemReq_bits_activeByteLane; // @[Top.scala 79:20]
+  wire  core_io_dmemReq_bits_isWrite; // @[Top.scala 79:20]
+  wire  core_io_dmemRsp_valid; // @[Top.scala 79:20]
+  wire [31:0] core_io_dmemRsp_bits_dataResponse; // @[Top.scala 79:20]
+  wire  core_io_imemReq_ready; // @[Top.scala 79:20]
+  wire  core_io_imemReq_valid; // @[Top.scala 79:20]
+  wire [31:0] core_io_imemReq_bits_addrRequest; // @[Top.scala 79:20]
+  wire  core_io_imemRsp_valid; // @[Top.scala 79:20]
+  wire [31:0] core_io_imemRsp_bits_dataResponse; // @[Top.scala 79:20]
+  wire  switch_io_hostIn_valid; // @[Top.scala 88:22]
+  wire  switch_io_hostIn_bits_cyc; // @[Top.scala 88:22]
+  wire  switch_io_hostIn_bits_stb; // @[Top.scala 88:22]
+  wire  switch_io_hostIn_bits_we; // @[Top.scala 88:22]
+  wire [31:0] switch_io_hostIn_bits_adr; // @[Top.scala 88:22]
+  wire [31:0] switch_io_hostIn_bits_dat; // @[Top.scala 88:22]
+  wire [3:0] switch_io_hostIn_bits_sel; // @[Top.scala 88:22]
+  wire  switch_io_hostOut_bits_ack; // @[Top.scala 88:22]
+  wire [31:0] switch_io_hostOut_bits_dat; // @[Top.scala 88:22]
+  wire  switch_io_hostOut_bits_err; // @[Top.scala 88:22]
+  wire  switch_io_devOut_0_valid; // @[Top.scala 88:22]
+  wire  switch_io_devOut_0_bits_cyc; // @[Top.scala 88:22]
+  wire  switch_io_devOut_0_bits_stb; // @[Top.scala 88:22]
+  wire  switch_io_devOut_0_bits_we; // @[Top.scala 88:22]
+  wire [31:0] switch_io_devOut_0_bits_adr; // @[Top.scala 88:22]
+  wire [31:0] switch_io_devOut_0_bits_dat; // @[Top.scala 88:22]
+  wire [3:0] switch_io_devOut_0_bits_sel; // @[Top.scala 88:22]
+  wire  switch_io_devOut_1_valid; // @[Top.scala 88:22]
+  wire  switch_io_devOut_1_bits_cyc; // @[Top.scala 88:22]
+  wire  switch_io_devOut_1_bits_stb; // @[Top.scala 88:22]
+  wire  switch_io_devOut_1_bits_we; // @[Top.scala 88:22]
+  wire [31:0] switch_io_devOut_1_bits_adr; // @[Top.scala 88:22]
+  wire [31:0] switch_io_devOut_1_bits_dat; // @[Top.scala 88:22]
+  wire [3:0] switch_io_devOut_1_bits_sel; // @[Top.scala 88:22]
+  wire  switch_io_devOut_2_valid; // @[Top.scala 88:22]
+  wire  switch_io_devOut_2_bits_cyc; // @[Top.scala 88:22]
+  wire  switch_io_devOut_2_bits_stb; // @[Top.scala 88:22]
+  wire  switch_io_devIn_0_bits_ack; // @[Top.scala 88:22]
+  wire [31:0] switch_io_devIn_0_bits_dat; // @[Top.scala 88:22]
+  wire  switch_io_devIn_0_bits_err; // @[Top.scala 88:22]
+  wire  switch_io_devIn_1_bits_ack; // @[Top.scala 88:22]
+  wire [31:0] switch_io_devIn_1_bits_dat; // @[Top.scala 88:22]
+  wire  switch_io_devIn_1_bits_err; // @[Top.scala 88:22]
+  wire [31:0] switch_io_devIn_2_bits_dat; // @[Top.scala 88:22]
+  wire  switch_io_devIn_2_bits_err; // @[Top.scala 88:22]
+  wire [1:0] switch_io_devSel; // @[Top.scala 88:22]
+  wire [31:0] _switch_io_devSel_addr_hit_0_T_1 = 32'hfffff000 & wb_dmem_host_io_wbMasterTransmitter_bits_adr; // @[BusDecoder.scala 45:60]
+  wire  switch_io_devSel_addr_hit_0 = _switch_io_devSel_addr_hit_0_T_1 == 32'h40000000; // @[BusDecoder.scala 45:68]
   wire [1:0] switch_io_devSel_id_0 = switch_io_devSel_addr_hit_0 ? 2'h1 : 2'h2; // @[BusDecoder.scala 46:19]
-  wire  switch_io_devSel_addr_hit_1 = _switch_io_devSel_addr_hit_0_T_1 == 32'h40000000; // @[BusDecoder.scala 45:68]
+  wire  switch_io_devSel_addr_hit_1 = _switch_io_devSel_addr_hit_0_T_1 == 32'h40001000; // @[BusDecoder.scala 45:68]
   wire [1:0] switch_io_devSel_id_1 = switch_io_devSel_addr_hit_1 ? 2'h0 : 2'h2; // @[BusDecoder.scala 46:19]
   wire [1:0] _switch_io_devSel_T = switch_io_devSel_addr_hit_1 ? switch_io_devSel_id_1 : 2'h2; // @[Mux.scala 98:16]
-  WishboneHost gen_imem_host ( // @[WBGenerator.scala 158:29]
-    .clock(gen_imem_host_clock),
-    .reset(gen_imem_host_reset),
-    .io_wbMasterTransmitter_ready(gen_imem_host_io_wbMasterTransmitter_ready),
-    .io_wbMasterTransmitter_valid(gen_imem_host_io_wbMasterTransmitter_valid),
-    .io_wbMasterTransmitter_bits_cyc(gen_imem_host_io_wbMasterTransmitter_bits_cyc),
-    .io_wbMasterTransmitter_bits_stb(gen_imem_host_io_wbMasterTransmitter_bits_stb),
-    .io_wbMasterTransmitter_bits_we(gen_imem_host_io_wbMasterTransmitter_bits_we),
-    .io_wbMasterTransmitter_bits_adr(gen_imem_host_io_wbMasterTransmitter_bits_adr),
-    .io_wbMasterTransmitter_bits_dat(gen_imem_host_io_wbMasterTransmitter_bits_dat),
-    .io_wbMasterTransmitter_bits_sel(gen_imem_host_io_wbMasterTransmitter_bits_sel),
-    .io_wbSlaveReceiver_ready(gen_imem_host_io_wbSlaveReceiver_ready),
-    .io_wbSlaveReceiver_bits_ack(gen_imem_host_io_wbSlaveReceiver_bits_ack),
-    .io_wbSlaveReceiver_bits_dat(gen_imem_host_io_wbSlaveReceiver_bits_dat),
-    .io_wbSlaveReceiver_bits_err(gen_imem_host_io_wbSlaveReceiver_bits_err),
-    .io_reqIn_ready(gen_imem_host_io_reqIn_ready),
-    .io_reqIn_valid(gen_imem_host_io_reqIn_valid),
-    .io_reqIn_bits_addrRequest(gen_imem_host_io_reqIn_bits_addrRequest),
-    .io_reqIn_bits_dataRequest(gen_imem_host_io_reqIn_bits_dataRequest),
-    .io_reqIn_bits_activeByteLane(gen_imem_host_io_reqIn_bits_activeByteLane),
-    .io_reqIn_bits_isWrite(gen_imem_host_io_reqIn_bits_isWrite),
-    .io_rspOut_valid(gen_imem_host_io_rspOut_valid),
-    .io_rspOut_bits_dataResponse(gen_imem_host_io_rspOut_bits_dataResponse)
+  WishboneHost wb_imem_host ( // @[Top.scala 67:28]
+    .clock(wb_imem_host_clock),
+    .reset(wb_imem_host_reset),
+    .io_wbMasterTransmitter_ready(wb_imem_host_io_wbMasterTransmitter_ready),
+    .io_wbMasterTransmitter_valid(wb_imem_host_io_wbMasterTransmitter_valid),
+    .io_wbMasterTransmitter_bits_cyc(wb_imem_host_io_wbMasterTransmitter_bits_cyc),
+    .io_wbMasterTransmitter_bits_stb(wb_imem_host_io_wbMasterTransmitter_bits_stb),
+    .io_wbMasterTransmitter_bits_we(wb_imem_host_io_wbMasterTransmitter_bits_we),
+    .io_wbMasterTransmitter_bits_adr(wb_imem_host_io_wbMasterTransmitter_bits_adr),
+    .io_wbMasterTransmitter_bits_dat(wb_imem_host_io_wbMasterTransmitter_bits_dat),
+    .io_wbMasterTransmitter_bits_sel(wb_imem_host_io_wbMasterTransmitter_bits_sel),
+    .io_wbSlaveReceiver_ready(wb_imem_host_io_wbSlaveReceiver_ready),
+    .io_wbSlaveReceiver_bits_ack(wb_imem_host_io_wbSlaveReceiver_bits_ack),
+    .io_wbSlaveReceiver_bits_dat(wb_imem_host_io_wbSlaveReceiver_bits_dat),
+    .io_wbSlaveReceiver_bits_err(wb_imem_host_io_wbSlaveReceiver_bits_err),
+    .io_reqIn_ready(wb_imem_host_io_reqIn_ready),
+    .io_reqIn_valid(wb_imem_host_io_reqIn_valid),
+    .io_reqIn_bits_addrRequest(wb_imem_host_io_reqIn_bits_addrRequest),
+    .io_reqIn_bits_dataRequest(wb_imem_host_io_reqIn_bits_dataRequest),
+    .io_reqIn_bits_activeByteLane(wb_imem_host_io_reqIn_bits_activeByteLane),
+    .io_reqIn_bits_isWrite(wb_imem_host_io_reqIn_bits_isWrite),
+    .io_rspOut_valid(wb_imem_host_io_rspOut_valid),
+    .io_rspOut_bits_dataResponse(wb_imem_host_io_rspOut_bits_dataResponse)
   );
-  WishboneDevice gen_imem_slave ( // @[WBGenerator.scala 159:30]
-    .io_wbSlaveTransmitter_ready(gen_imem_slave_io_wbSlaveTransmitter_ready),
-    .io_wbSlaveTransmitter_bits_ack(gen_imem_slave_io_wbSlaveTransmitter_bits_ack),
-    .io_wbSlaveTransmitter_bits_dat(gen_imem_slave_io_wbSlaveTransmitter_bits_dat),
-    .io_wbSlaveTransmitter_bits_err(gen_imem_slave_io_wbSlaveTransmitter_bits_err),
-    .io_wbMasterReceiver_ready(gen_imem_slave_io_wbMasterReceiver_ready),
-    .io_wbMasterReceiver_valid(gen_imem_slave_io_wbMasterReceiver_valid),
-    .io_wbMasterReceiver_bits_cyc(gen_imem_slave_io_wbMasterReceiver_bits_cyc),
-    .io_wbMasterReceiver_bits_stb(gen_imem_slave_io_wbMasterReceiver_bits_stb),
-    .io_wbMasterReceiver_bits_we(gen_imem_slave_io_wbMasterReceiver_bits_we),
-    .io_wbMasterReceiver_bits_adr(gen_imem_slave_io_wbMasterReceiver_bits_adr),
-    .io_wbMasterReceiver_bits_dat(gen_imem_slave_io_wbMasterReceiver_bits_dat),
-    .io_wbMasterReceiver_bits_sel(gen_imem_slave_io_wbMasterReceiver_bits_sel),
-    .io_reqOut_valid(gen_imem_slave_io_reqOut_valid),
-    .io_reqOut_bits_addrRequest(gen_imem_slave_io_reqOut_bits_addrRequest),
-    .io_reqOut_bits_dataRequest(gen_imem_slave_io_reqOut_bits_dataRequest),
-    .io_reqOut_bits_activeByteLane(gen_imem_slave_io_reqOut_bits_activeByteLane),
-    .io_reqOut_bits_isWrite(gen_imem_slave_io_reqOut_bits_isWrite),
-    .io_rspIn_valid(gen_imem_slave_io_rspIn_valid),
-    .io_rspIn_bits_dataResponse(gen_imem_slave_io_rspIn_bits_dataResponse),
-    .io_rspIn_bits_error(gen_imem_slave_io_rspIn_bits_error)
+  WishboneDevice wb_imem_slave ( // @[Top.scala 68:29]
+    .io_wbSlaveTransmitter_ready(wb_imem_slave_io_wbSlaveTransmitter_ready),
+    .io_wbSlaveTransmitter_bits_ack(wb_imem_slave_io_wbSlaveTransmitter_bits_ack),
+    .io_wbSlaveTransmitter_bits_dat(wb_imem_slave_io_wbSlaveTransmitter_bits_dat),
+    .io_wbSlaveTransmitter_bits_err(wb_imem_slave_io_wbSlaveTransmitter_bits_err),
+    .io_wbMasterReceiver_ready(wb_imem_slave_io_wbMasterReceiver_ready),
+    .io_wbMasterReceiver_valid(wb_imem_slave_io_wbMasterReceiver_valid),
+    .io_wbMasterReceiver_bits_cyc(wb_imem_slave_io_wbMasterReceiver_bits_cyc),
+    .io_wbMasterReceiver_bits_stb(wb_imem_slave_io_wbMasterReceiver_bits_stb),
+    .io_wbMasterReceiver_bits_we(wb_imem_slave_io_wbMasterReceiver_bits_we),
+    .io_wbMasterReceiver_bits_adr(wb_imem_slave_io_wbMasterReceiver_bits_adr),
+    .io_wbMasterReceiver_bits_dat(wb_imem_slave_io_wbMasterReceiver_bits_dat),
+    .io_wbMasterReceiver_bits_sel(wb_imem_slave_io_wbMasterReceiver_bits_sel),
+    .io_reqOut_valid(wb_imem_slave_io_reqOut_valid),
+    .io_reqOut_bits_addrRequest(wb_imem_slave_io_reqOut_bits_addrRequest),
+    .io_reqOut_bits_dataRequest(wb_imem_slave_io_reqOut_bits_dataRequest),
+    .io_reqOut_bits_activeByteLane(wb_imem_slave_io_reqOut_bits_activeByteLane),
+    .io_reqOut_bits_isWrite(wb_imem_slave_io_reqOut_bits_isWrite),
+    .io_rspIn_valid(wb_imem_slave_io_rspIn_valid),
+    .io_rspIn_bits_dataResponse(wb_imem_slave_io_rspIn_bits_dataResponse),
+    .io_rspIn_bits_error(wb_imem_slave_io_rspIn_bits_error)
   );
-  WishboneHost gen_dmem_host ( // @[WBGenerator.scala 160:29]
-    .clock(gen_dmem_host_clock),
-    .reset(gen_dmem_host_reset),
-    .io_wbMasterTransmitter_ready(gen_dmem_host_io_wbMasterTransmitter_ready),
-    .io_wbMasterTransmitter_valid(gen_dmem_host_io_wbMasterTransmitter_valid),
-    .io_wbMasterTransmitter_bits_cyc(gen_dmem_host_io_wbMasterTransmitter_bits_cyc),
-    .io_wbMasterTransmitter_bits_stb(gen_dmem_host_io_wbMasterTransmitter_bits_stb),
-    .io_wbMasterTransmitter_bits_we(gen_dmem_host_io_wbMasterTransmitter_bits_we),
-    .io_wbMasterTransmitter_bits_adr(gen_dmem_host_io_wbMasterTransmitter_bits_adr),
-    .io_wbMasterTransmitter_bits_dat(gen_dmem_host_io_wbMasterTransmitter_bits_dat),
-    .io_wbMasterTransmitter_bits_sel(gen_dmem_host_io_wbMasterTransmitter_bits_sel),
-    .io_wbSlaveReceiver_ready(gen_dmem_host_io_wbSlaveReceiver_ready),
-    .io_wbSlaveReceiver_bits_ack(gen_dmem_host_io_wbSlaveReceiver_bits_ack),
-    .io_wbSlaveReceiver_bits_dat(gen_dmem_host_io_wbSlaveReceiver_bits_dat),
-    .io_wbSlaveReceiver_bits_err(gen_dmem_host_io_wbSlaveReceiver_bits_err),
-    .io_reqIn_ready(gen_dmem_host_io_reqIn_ready),
-    .io_reqIn_valid(gen_dmem_host_io_reqIn_valid),
-    .io_reqIn_bits_addrRequest(gen_dmem_host_io_reqIn_bits_addrRequest),
-    .io_reqIn_bits_dataRequest(gen_dmem_host_io_reqIn_bits_dataRequest),
-    .io_reqIn_bits_activeByteLane(gen_dmem_host_io_reqIn_bits_activeByteLane),
-    .io_reqIn_bits_isWrite(gen_dmem_host_io_reqIn_bits_isWrite),
-    .io_rspOut_valid(gen_dmem_host_io_rspOut_valid),
-    .io_rspOut_bits_dataResponse(gen_dmem_host_io_rspOut_bits_dataResponse)
+  WishboneHost wb_dmem_host ( // @[Top.scala 69:28]
+    .clock(wb_dmem_host_clock),
+    .reset(wb_dmem_host_reset),
+    .io_wbMasterTransmitter_ready(wb_dmem_host_io_wbMasterTransmitter_ready),
+    .io_wbMasterTransmitter_valid(wb_dmem_host_io_wbMasterTransmitter_valid),
+    .io_wbMasterTransmitter_bits_cyc(wb_dmem_host_io_wbMasterTransmitter_bits_cyc),
+    .io_wbMasterTransmitter_bits_stb(wb_dmem_host_io_wbMasterTransmitter_bits_stb),
+    .io_wbMasterTransmitter_bits_we(wb_dmem_host_io_wbMasterTransmitter_bits_we),
+    .io_wbMasterTransmitter_bits_adr(wb_dmem_host_io_wbMasterTransmitter_bits_adr),
+    .io_wbMasterTransmitter_bits_dat(wb_dmem_host_io_wbMasterTransmitter_bits_dat),
+    .io_wbMasterTransmitter_bits_sel(wb_dmem_host_io_wbMasterTransmitter_bits_sel),
+    .io_wbSlaveReceiver_ready(wb_dmem_host_io_wbSlaveReceiver_ready),
+    .io_wbSlaveReceiver_bits_ack(wb_dmem_host_io_wbSlaveReceiver_bits_ack),
+    .io_wbSlaveReceiver_bits_dat(wb_dmem_host_io_wbSlaveReceiver_bits_dat),
+    .io_wbSlaveReceiver_bits_err(wb_dmem_host_io_wbSlaveReceiver_bits_err),
+    .io_reqIn_ready(wb_dmem_host_io_reqIn_ready),
+    .io_reqIn_valid(wb_dmem_host_io_reqIn_valid),
+    .io_reqIn_bits_addrRequest(wb_dmem_host_io_reqIn_bits_addrRequest),
+    .io_reqIn_bits_dataRequest(wb_dmem_host_io_reqIn_bits_dataRequest),
+    .io_reqIn_bits_activeByteLane(wb_dmem_host_io_reqIn_bits_activeByteLane),
+    .io_reqIn_bits_isWrite(wb_dmem_host_io_reqIn_bits_isWrite),
+    .io_rspOut_valid(wb_dmem_host_io_rspOut_valid),
+    .io_rspOut_bits_dataResponse(wb_dmem_host_io_rspOut_bits_dataResponse)
   );
-  WishboneDevice gen_dmem_slave ( // @[WBGenerator.scala 161:30]
-    .io_wbSlaveTransmitter_ready(gen_dmem_slave_io_wbSlaveTransmitter_ready),
-    .io_wbSlaveTransmitter_bits_ack(gen_dmem_slave_io_wbSlaveTransmitter_bits_ack),
-    .io_wbSlaveTransmitter_bits_dat(gen_dmem_slave_io_wbSlaveTransmitter_bits_dat),
-    .io_wbSlaveTransmitter_bits_err(gen_dmem_slave_io_wbSlaveTransmitter_bits_err),
-    .io_wbMasterReceiver_ready(gen_dmem_slave_io_wbMasterReceiver_ready),
-    .io_wbMasterReceiver_valid(gen_dmem_slave_io_wbMasterReceiver_valid),
-    .io_wbMasterReceiver_bits_cyc(gen_dmem_slave_io_wbMasterReceiver_bits_cyc),
-    .io_wbMasterReceiver_bits_stb(gen_dmem_slave_io_wbMasterReceiver_bits_stb),
-    .io_wbMasterReceiver_bits_we(gen_dmem_slave_io_wbMasterReceiver_bits_we),
-    .io_wbMasterReceiver_bits_adr(gen_dmem_slave_io_wbMasterReceiver_bits_adr),
-    .io_wbMasterReceiver_bits_dat(gen_dmem_slave_io_wbMasterReceiver_bits_dat),
-    .io_wbMasterReceiver_bits_sel(gen_dmem_slave_io_wbMasterReceiver_bits_sel),
-    .io_reqOut_valid(gen_dmem_slave_io_reqOut_valid),
-    .io_reqOut_bits_addrRequest(gen_dmem_slave_io_reqOut_bits_addrRequest),
-    .io_reqOut_bits_dataRequest(gen_dmem_slave_io_reqOut_bits_dataRequest),
-    .io_reqOut_bits_activeByteLane(gen_dmem_slave_io_reqOut_bits_activeByteLane),
-    .io_reqOut_bits_isWrite(gen_dmem_slave_io_reqOut_bits_isWrite),
-    .io_rspIn_valid(gen_dmem_slave_io_rspIn_valid),
-    .io_rspIn_bits_dataResponse(gen_dmem_slave_io_rspIn_bits_dataResponse),
-    .io_rspIn_bits_error(gen_dmem_slave_io_rspIn_bits_error)
+  WishboneDevice wb_dmem_slave ( // @[Top.scala 70:29]
+    .io_wbSlaveTransmitter_ready(wb_dmem_slave_io_wbSlaveTransmitter_ready),
+    .io_wbSlaveTransmitter_bits_ack(wb_dmem_slave_io_wbSlaveTransmitter_bits_ack),
+    .io_wbSlaveTransmitter_bits_dat(wb_dmem_slave_io_wbSlaveTransmitter_bits_dat),
+    .io_wbSlaveTransmitter_bits_err(wb_dmem_slave_io_wbSlaveTransmitter_bits_err),
+    .io_wbMasterReceiver_ready(wb_dmem_slave_io_wbMasterReceiver_ready),
+    .io_wbMasterReceiver_valid(wb_dmem_slave_io_wbMasterReceiver_valid),
+    .io_wbMasterReceiver_bits_cyc(wb_dmem_slave_io_wbMasterReceiver_bits_cyc),
+    .io_wbMasterReceiver_bits_stb(wb_dmem_slave_io_wbMasterReceiver_bits_stb),
+    .io_wbMasterReceiver_bits_we(wb_dmem_slave_io_wbMasterReceiver_bits_we),
+    .io_wbMasterReceiver_bits_adr(wb_dmem_slave_io_wbMasterReceiver_bits_adr),
+    .io_wbMasterReceiver_bits_dat(wb_dmem_slave_io_wbMasterReceiver_bits_dat),
+    .io_wbMasterReceiver_bits_sel(wb_dmem_slave_io_wbMasterReceiver_bits_sel),
+    .io_reqOut_valid(wb_dmem_slave_io_reqOut_valid),
+    .io_reqOut_bits_addrRequest(wb_dmem_slave_io_reqOut_bits_addrRequest),
+    .io_reqOut_bits_dataRequest(wb_dmem_slave_io_reqOut_bits_dataRequest),
+    .io_reqOut_bits_activeByteLane(wb_dmem_slave_io_reqOut_bits_activeByteLane),
+    .io_reqOut_bits_isWrite(wb_dmem_slave_io_reqOut_bits_isWrite),
+    .io_rspIn_valid(wb_dmem_slave_io_rspIn_valid),
+    .io_rspIn_bits_dataResponse(wb_dmem_slave_io_rspIn_bits_dataResponse),
+    .io_rspIn_bits_error(wb_dmem_slave_io_rspIn_bits_error)
   );
-  Gpio gpio ( // @[WBGenerator.scala 165:20]
+  WishboneDevice wb_gpio_slave ( // @[Top.scala 71:29]
+    .io_wbSlaveTransmitter_ready(wb_gpio_slave_io_wbSlaveTransmitter_ready),
+    .io_wbSlaveTransmitter_bits_ack(wb_gpio_slave_io_wbSlaveTransmitter_bits_ack),
+    .io_wbSlaveTransmitter_bits_dat(wb_gpio_slave_io_wbSlaveTransmitter_bits_dat),
+    .io_wbSlaveTransmitter_bits_err(wb_gpio_slave_io_wbSlaveTransmitter_bits_err),
+    .io_wbMasterReceiver_ready(wb_gpio_slave_io_wbMasterReceiver_ready),
+    .io_wbMasterReceiver_valid(wb_gpio_slave_io_wbMasterReceiver_valid),
+    .io_wbMasterReceiver_bits_cyc(wb_gpio_slave_io_wbMasterReceiver_bits_cyc),
+    .io_wbMasterReceiver_bits_stb(wb_gpio_slave_io_wbMasterReceiver_bits_stb),
+    .io_wbMasterReceiver_bits_we(wb_gpio_slave_io_wbMasterReceiver_bits_we),
+    .io_wbMasterReceiver_bits_adr(wb_gpio_slave_io_wbMasterReceiver_bits_adr),
+    .io_wbMasterReceiver_bits_dat(wb_gpio_slave_io_wbMasterReceiver_bits_dat),
+    .io_wbMasterReceiver_bits_sel(wb_gpio_slave_io_wbMasterReceiver_bits_sel),
+    .io_reqOut_valid(wb_gpio_slave_io_reqOut_valid),
+    .io_reqOut_bits_addrRequest(wb_gpio_slave_io_reqOut_bits_addrRequest),
+    .io_reqOut_bits_dataRequest(wb_gpio_slave_io_reqOut_bits_dataRequest),
+    .io_reqOut_bits_activeByteLane(wb_gpio_slave_io_reqOut_bits_activeByteLane),
+    .io_reqOut_bits_isWrite(wb_gpio_slave_io_reqOut_bits_isWrite),
+    .io_rspIn_valid(wb_gpio_slave_io_rspIn_valid),
+    .io_rspIn_bits_dataResponse(wb_gpio_slave_io_rspIn_bits_dataResponse),
+    .io_rspIn_bits_error(wb_gpio_slave_io_rspIn_bits_error)
+  );
+  SRAM1kb dmem ( // @[Top.scala 74:20]
+    .clock(dmem_clock),
+    .reset(dmem_reset),
+    .io_req_valid(dmem_io_req_valid),
+    .io_req_bits_addrRequest(dmem_io_req_bits_addrRequest),
+    .io_req_bits_dataRequest(dmem_io_req_bits_dataRequest),
+    .io_req_bits_activeByteLane(dmem_io_req_bits_activeByteLane),
+    .io_req_bits_isWrite(dmem_io_req_bits_isWrite),
+    .io_rsp_valid(dmem_io_rsp_valid),
+    .io_rsp_bits_dataResponse(dmem_io_rsp_bits_dataResponse)
+  );
+  SramImem imem ( // @[Top.scala 75:20]
+    .clock(imem_clock),
+    .reset(imem_reset),
+    .io_req_valid(imem_io_req_valid),
+    .io_req_bits_addrRequest(imem_io_req_bits_addrRequest),
+    .io_req_bits_isWrite(imem_io_req_bits_isWrite),
+    .io_rsp_valid(imem_io_rsp_valid),
+    .io_rsp_bits_dataResponse(imem_io_rsp_bits_dataResponse),
+    .io_writeEnable(imem_io_writeEnable),
+    .io_addrIn(imem_io_addrIn),
+    .io_dataIn(imem_io_dataIn)
+  );
+  Gpio gpio ( // @[Top.scala 76:20]
     .clock(gpio_clock),
     .reset(gpio_reset),
     .io_req_valid(gpio_io_req_valid),
@@ -4156,51 +3880,7 @@
     .io_cio_gpio_o(gpio_io_cio_gpio_o),
     .io_cio_gpio_en_o(gpio_io_cio_gpio_en_o)
   );
-  WishboneDevice gen_gpio_slave ( // @[WBGenerator.scala 166:30]
-    .io_wbSlaveTransmitter_ready(gen_gpio_slave_io_wbSlaveTransmitter_ready),
-    .io_wbSlaveTransmitter_bits_ack(gen_gpio_slave_io_wbSlaveTransmitter_bits_ack),
-    .io_wbSlaveTransmitter_bits_dat(gen_gpio_slave_io_wbSlaveTransmitter_bits_dat),
-    .io_wbSlaveTransmitter_bits_err(gen_gpio_slave_io_wbSlaveTransmitter_bits_err),
-    .io_wbMasterReceiver_ready(gen_gpio_slave_io_wbMasterReceiver_ready),
-    .io_wbMasterReceiver_valid(gen_gpio_slave_io_wbMasterReceiver_valid),
-    .io_wbMasterReceiver_bits_cyc(gen_gpio_slave_io_wbMasterReceiver_bits_cyc),
-    .io_wbMasterReceiver_bits_stb(gen_gpio_slave_io_wbMasterReceiver_bits_stb),
-    .io_wbMasterReceiver_bits_we(gen_gpio_slave_io_wbMasterReceiver_bits_we),
-    .io_wbMasterReceiver_bits_adr(gen_gpio_slave_io_wbMasterReceiver_bits_adr),
-    .io_wbMasterReceiver_bits_dat(gen_gpio_slave_io_wbMasterReceiver_bits_dat),
-    .io_wbMasterReceiver_bits_sel(gen_gpio_slave_io_wbMasterReceiver_bits_sel),
-    .io_reqOut_valid(gen_gpio_slave_io_reqOut_valid),
-    .io_reqOut_bits_addrRequest(gen_gpio_slave_io_reqOut_bits_addrRequest),
-    .io_reqOut_bits_dataRequest(gen_gpio_slave_io_reqOut_bits_dataRequest),
-    .io_reqOut_bits_activeByteLane(gen_gpio_slave_io_reqOut_bits_activeByteLane),
-    .io_reqOut_bits_isWrite(gen_gpio_slave_io_reqOut_bits_isWrite),
-    .io_rspIn_valid(gen_gpio_slave_io_rspIn_valid),
-    .io_rspIn_bits_dataResponse(gen_gpio_slave_io_rspIn_bits_dataResponse),
-    .io_rspIn_bits_error(gen_gpio_slave_io_rspIn_bits_error)
-  );
-  SRAM1kb imem ( // @[WBGenerator.scala 265:20]
-    .clock(imem_clock),
-    .reset(imem_reset),
-    .io_req_valid(imem_io_req_valid),
-    .io_req_bits_addrRequest(imem_io_req_bits_addrRequest),
-    .io_req_bits_dataRequest(imem_io_req_bits_dataRequest),
-    .io_req_bits_activeByteLane(imem_io_req_bits_activeByteLane),
-    .io_req_bits_isWrite(imem_io_req_bits_isWrite),
-    .io_rsp_valid(imem_io_rsp_valid),
-    .io_rsp_bits_dataResponse(imem_io_rsp_bits_dataResponse)
-  );
-  SRAM1kb dmem ( // @[WBGenerator.scala 266:20]
-    .clock(dmem_clock),
-    .reset(dmem_reset),
-    .io_req_valid(dmem_io_req_valid),
-    .io_req_bits_addrRequest(dmem_io_req_bits_addrRequest),
-    .io_req_bits_dataRequest(dmem_io_req_bits_dataRequest),
-    .io_req_bits_activeByteLane(dmem_io_req_bits_activeByteLane),
-    .io_req_bits_isWrite(dmem_io_req_bits_isWrite),
-    .io_rsp_valid(dmem_io_rsp_valid),
-    .io_rsp_bits_dataResponse(dmem_io_rsp_bits_dataResponse)
-  );
-  WishboneErr wbErr ( // @[WBGenerator.scala 268:21]
+  WishboneErr wbErr ( // @[Top.scala 77:21]
     .clock(wbErr_clock),
     .reset(wbErr_reset),
     .io_wbSlaveTransmitter_bits_dat(wbErr_io_wbSlaveTransmitter_bits_dat),
@@ -4209,10 +3889,9 @@
     .io_wbMasterReceiver_bits_cyc(wbErr_io_wbMasterReceiver_bits_cyc),
     .io_wbMasterReceiver_bits_stb(wbErr_io_wbMasterReceiver_bits_stb)
   );
-  Core core ( // @[WBGenerator.scala 269:20]
+  Core core ( // @[Top.scala 79:20]
     .clock(core_clock),
     .reset(core_reset),
-    .io_stall(core_io_stall),
     .io_dmemReq_valid(core_io_dmemReq_valid),
     .io_dmemReq_bits_addrRequest(core_io_dmemReq_bits_addrRequest),
     .io_dmemReq_bits_dataRequest(core_io_dmemReq_bits_dataRequest),
@@ -4226,7 +3905,7 @@
     .io_imemRsp_valid(core_io_imemRsp_valid),
     .io_imemRsp_bits_dataResponse(core_io_imemRsp_bits_dataResponse)
   );
-  Switch1toN switch ( // @[WBGenerator.scala 282:22]
+  Switch1toN switch ( // @[Top.scala 88:22]
     .io_hostIn_valid(switch_io_hostIn_valid),
     .io_hostIn_bits_cyc(switch_io_hostIn_bits_cyc),
     .io_hostIn_bits_stb(switch_io_hostIn_bits_stb),
@@ -4264,215 +3943,112 @@
     .io_devIn_2_bits_err(switch_io_devIn_2_bits_err),
     .io_devSel(switch_io_devSel)
   );
-  PUart puart ( // @[WBGenerator.scala 285:21]
-    .clock(puart_clock),
-    .reset(puart_reset),
-    .io_isStalled(puart_io_isStalled),
-    .io_rx_data_o(puart_io_rx_data_o),
-    .io_addr_o(puart_io_addr_o),
-    .io_CLK_PER_BIT(puart_io_CLK_PER_BIT),
-    .io_rxd(puart_io_rxd),
-    .io_valid(puart_io_valid),
-    .io_done(puart_io_done)
-  );
-  assign io_gpio_o = gpio_io_cio_gpio_o; // @[WBGenerator.scala 171:34]
-  assign io_gpio_en_o = gpio_io_cio_gpio_en_o; // @[WBGenerator.scala 172:40]
-  assign gen_imem_host_clock = clock;
-  assign gen_imem_host_reset = reset;
-  assign gen_imem_host_io_wbMasterTransmitter_ready = gen_imem_slave_io_wbMasterReceiver_ready; // @[WBGenerator.scala 414:40]
-  assign gen_imem_host_io_wbSlaveReceiver_bits_ack = gen_imem_slave_io_wbSlaveTransmitter_bits_ack; // @[WBGenerator.scala 415:40]
-  assign gen_imem_host_io_wbSlaveReceiver_bits_dat = gen_imem_slave_io_wbSlaveTransmitter_bits_dat; // @[WBGenerator.scala 415:40]
-  assign gen_imem_host_io_wbSlaveReceiver_bits_err = gen_imem_slave_io_wbSlaveTransmitter_bits_err; // @[WBGenerator.scala 415:40]
-  assign gen_imem_host_io_reqIn_valid = ~puart_io_done ? _GEN_21 : core_io_imemReq_valid; // @[WBGenerator.scala 300:23 WBGenerator.scala 402:32]
-  assign gen_imem_host_io_reqIn_bits_addrRequest = ~puart_io_done ? _GEN_26 : core_io_imemReq_bits_addrRequest; // @[WBGenerator.scala 300:23 WBGenerator.scala 402:32]
-  assign gen_imem_host_io_reqIn_bits_dataRequest = ~puart_io_done ? _GEN_27 : 32'h0; // @[WBGenerator.scala 300:23 WBGenerator.scala 402:32]
-  assign gen_imem_host_io_reqIn_bits_activeByteLane = _GEN_32[3:0];
-  assign gen_imem_host_io_reqIn_bits_isWrite = ~puart_io_done & _GEN_21; // @[WBGenerator.scala 300:23 WBGenerator.scala 402:32]
-  assign gen_imem_slave_io_wbSlaveTransmitter_ready = gen_imem_host_io_wbSlaveReceiver_ready; // @[WBGenerator.scala 415:40]
-  assign gen_imem_slave_io_wbMasterReceiver_valid = gen_imem_host_io_wbMasterTransmitter_valid; // @[WBGenerator.scala 414:40]
-  assign gen_imem_slave_io_wbMasterReceiver_bits_cyc = gen_imem_host_io_wbMasterTransmitter_bits_cyc; // @[WBGenerator.scala 414:40]
-  assign gen_imem_slave_io_wbMasterReceiver_bits_stb = gen_imem_host_io_wbMasterTransmitter_bits_stb; // @[WBGenerator.scala 414:40]
-  assign gen_imem_slave_io_wbMasterReceiver_bits_we = gen_imem_host_io_wbMasterTransmitter_bits_we; // @[WBGenerator.scala 414:40]
-  assign gen_imem_slave_io_wbMasterReceiver_bits_adr = gen_imem_host_io_wbMasterTransmitter_bits_adr; // @[WBGenerator.scala 414:40]
-  assign gen_imem_slave_io_wbMasterReceiver_bits_dat = gen_imem_host_io_wbMasterTransmitter_bits_dat; // @[WBGenerator.scala 414:40]
-  assign gen_imem_slave_io_wbMasterReceiver_bits_sel = gen_imem_host_io_wbMasterTransmitter_bits_sel; // @[WBGenerator.scala 414:40]
-  assign gen_imem_slave_io_rspIn_valid = imem_io_rsp_valid; // @[WBGenerator.scala 411:27]
-  assign gen_imem_slave_io_rspIn_bits_dataResponse = imem_io_rsp_bits_dataResponse; // @[WBGenerator.scala 411:27]
-  assign gen_imem_slave_io_rspIn_bits_error = 1'h0; // @[WBGenerator.scala 411:27]
-  assign gen_dmem_host_clock = clock;
-  assign gen_dmem_host_reset = reset;
-  assign gen_dmem_host_io_wbMasterTransmitter_ready = 1'h1; // @[WBGenerator.scala 425:20]
-  assign gen_dmem_host_io_wbSlaveReceiver_bits_ack = switch_io_hostOut_bits_ack; // @[WBGenerator.scala 426:21]
-  assign gen_dmem_host_io_wbSlaveReceiver_bits_dat = switch_io_hostOut_bits_dat; // @[WBGenerator.scala 426:21]
-  assign gen_dmem_host_io_wbSlaveReceiver_bits_err = switch_io_hostOut_bits_err; // @[WBGenerator.scala 426:21]
-  assign gen_dmem_host_io_reqIn_valid = core_io_dmemReq_valid; // @[WBGenerator.scala 418:26]
-  assign gen_dmem_host_io_reqIn_bits_addrRequest = core_io_dmemReq_bits_addrRequest; // @[WBGenerator.scala 418:26]
-  assign gen_dmem_host_io_reqIn_bits_dataRequest = core_io_dmemReq_bits_dataRequest; // @[WBGenerator.scala 418:26]
-  assign gen_dmem_host_io_reqIn_bits_activeByteLane = core_io_dmemReq_bits_activeByteLane; // @[WBGenerator.scala 418:26]
-  assign gen_dmem_host_io_reqIn_bits_isWrite = core_io_dmemReq_bits_isWrite; // @[WBGenerator.scala 418:26]
-  assign gen_dmem_slave_io_wbSlaveTransmitter_ready = 1'h1; // @[WBGenerator.scala 428:53]
-  assign gen_dmem_slave_io_wbMasterReceiver_valid = switch_io_devOut_0_valid; // @[WBGenerator.scala 429:54]
-  assign gen_dmem_slave_io_wbMasterReceiver_bits_cyc = switch_io_devOut_0_bits_cyc; // @[WBGenerator.scala 429:54]
-  assign gen_dmem_slave_io_wbMasterReceiver_bits_stb = switch_io_devOut_0_bits_stb; // @[WBGenerator.scala 429:54]
-  assign gen_dmem_slave_io_wbMasterReceiver_bits_we = switch_io_devOut_0_bits_we; // @[WBGenerator.scala 429:54]
-  assign gen_dmem_slave_io_wbMasterReceiver_bits_adr = switch_io_devOut_0_bits_adr; // @[WBGenerator.scala 429:54]
-  assign gen_dmem_slave_io_wbMasterReceiver_bits_dat = switch_io_devOut_0_bits_dat; // @[WBGenerator.scala 429:54]
-  assign gen_dmem_slave_io_wbMasterReceiver_bits_sel = switch_io_devOut_0_bits_sel; // @[WBGenerator.scala 429:54]
-  assign gen_dmem_slave_io_rspIn_valid = dmem_io_rsp_valid; // @[WBGenerator.scala 421:27]
-  assign gen_dmem_slave_io_rspIn_bits_dataResponse = dmem_io_rsp_bits_dataResponse; // @[WBGenerator.scala 421:27]
-  assign gen_dmem_slave_io_rspIn_bits_error = 1'h0; // @[WBGenerator.scala 421:27]
-  assign gpio_clock = clock;
-  assign gpio_reset = reset;
-  assign gpio_io_req_valid = gen_gpio_slave_io_reqOut_valid; // @[WBGenerator.scala 168:28]
-  assign gpio_io_req_bits_addrRequest = gen_gpio_slave_io_reqOut_bits_addrRequest; // @[WBGenerator.scala 168:28]
-  assign gpio_io_req_bits_dataRequest = gen_gpio_slave_io_reqOut_bits_dataRequest; // @[WBGenerator.scala 168:28]
-  assign gpio_io_req_bits_activeByteLane = gen_gpio_slave_io_reqOut_bits_activeByteLane; // @[WBGenerator.scala 168:28]
-  assign gpio_io_req_bits_isWrite = gen_gpio_slave_io_reqOut_bits_isWrite; // @[WBGenerator.scala 168:28]
-  assign gpio_io_cio_gpio_i = io_gpio_i; // @[WBGenerator.scala 173:22]
-  assign gen_gpio_slave_io_wbSlaveTransmitter_ready = 1'h1; // @[WBGenerator.scala 428:53]
-  assign gen_gpio_slave_io_wbMasterReceiver_valid = switch_io_devOut_1_valid; // @[WBGenerator.scala 429:54]
-  assign gen_gpio_slave_io_wbMasterReceiver_bits_cyc = switch_io_devOut_1_bits_cyc; // @[WBGenerator.scala 429:54]
-  assign gen_gpio_slave_io_wbMasterReceiver_bits_stb = switch_io_devOut_1_bits_stb; // @[WBGenerator.scala 429:54]
-  assign gen_gpio_slave_io_wbMasterReceiver_bits_we = switch_io_devOut_1_bits_we; // @[WBGenerator.scala 429:54]
-  assign gen_gpio_slave_io_wbMasterReceiver_bits_adr = switch_io_devOut_1_bits_adr; // @[WBGenerator.scala 429:54]
-  assign gen_gpio_slave_io_wbMasterReceiver_bits_dat = switch_io_devOut_1_bits_dat; // @[WBGenerator.scala 429:54]
-  assign gen_gpio_slave_io_wbMasterReceiver_bits_sel = switch_io_devOut_1_bits_sel; // @[WBGenerator.scala 429:54]
-  assign gen_gpio_slave_io_rspIn_valid = gpio_io_rsp_valid; // @[WBGenerator.scala 169:27]
-  assign gen_gpio_slave_io_rspIn_bits_dataResponse = gpio_io_rsp_bits_dataResponse; // @[WBGenerator.scala 169:27]
-  assign gen_gpio_slave_io_rspIn_bits_error = gpio_io_rsp_bits_error; // @[WBGenerator.scala 169:27]
-  assign imem_clock = clock;
-  assign imem_reset = reset;
-  assign imem_io_req_valid = gen_imem_slave_io_reqOut_valid; // @[WBGenerator.scala 410:28]
-  assign imem_io_req_bits_addrRequest = gen_imem_slave_io_reqOut_bits_addrRequest; // @[WBGenerator.scala 410:28]
-  assign imem_io_req_bits_dataRequest = gen_imem_slave_io_reqOut_bits_dataRequest; // @[WBGenerator.scala 410:28]
-  assign imem_io_req_bits_activeByteLane = gen_imem_slave_io_reqOut_bits_activeByteLane; // @[WBGenerator.scala 410:28]
-  assign imem_io_req_bits_isWrite = gen_imem_slave_io_reqOut_bits_isWrite; // @[WBGenerator.scala 410:28]
+  assign io_gpio_o = gpio_io_cio_gpio_o; // @[Top.scala 256:34]
+  assign io_gpio_en_o = gpio_io_cio_gpio_en_o; // @[Top.scala 257:40]
+  assign wb_imem_host_clock = clock;
+  assign wb_imem_host_reset = reset;
+  assign wb_imem_host_io_wbMasterTransmitter_ready = wb_imem_slave_io_wbMasterReceiver_ready; // @[Top.scala 231:39]
+  assign wb_imem_host_io_wbSlaveReceiver_bits_ack = wb_imem_slave_io_wbSlaveTransmitter_bits_ack; // @[Top.scala 232:39]
+  assign wb_imem_host_io_wbSlaveReceiver_bits_dat = wb_imem_slave_io_wbSlaveTransmitter_bits_dat; // @[Top.scala 232:39]
+  assign wb_imem_host_io_wbSlaveReceiver_bits_err = wb_imem_slave_io_wbSlaveTransmitter_bits_err; // @[Top.scala 232:39]
+  assign wb_imem_host_io_reqIn_valid = core_io_imemReq_valid; // @[Top.scala 225:25]
+  assign wb_imem_host_io_reqIn_bits_addrRequest = core_io_imemReq_bits_addrRequest; // @[Top.scala 225:25]
+  assign wb_imem_host_io_reqIn_bits_dataRequest = 32'h0; // @[Top.scala 225:25]
+  assign wb_imem_host_io_reqIn_bits_activeByteLane = 4'hf; // @[Top.scala 225:25]
+  assign wb_imem_host_io_reqIn_bits_isWrite = 1'h0; // @[Top.scala 225:25]
+  assign wb_imem_slave_io_wbSlaveTransmitter_ready = wb_imem_host_io_wbSlaveReceiver_ready; // @[Top.scala 232:39]
+  assign wb_imem_slave_io_wbMasterReceiver_valid = wb_imem_host_io_wbMasterTransmitter_valid; // @[Top.scala 231:39]
+  assign wb_imem_slave_io_wbMasterReceiver_bits_cyc = wb_imem_host_io_wbMasterTransmitter_bits_cyc; // @[Top.scala 231:39]
+  assign wb_imem_slave_io_wbMasterReceiver_bits_stb = wb_imem_host_io_wbMasterTransmitter_bits_stb; // @[Top.scala 231:39]
+  assign wb_imem_slave_io_wbMasterReceiver_bits_we = wb_imem_host_io_wbMasterTransmitter_bits_we; // @[Top.scala 231:39]
+  assign wb_imem_slave_io_wbMasterReceiver_bits_adr = wb_imem_host_io_wbMasterTransmitter_bits_adr; // @[Top.scala 231:39]
+  assign wb_imem_slave_io_wbMasterReceiver_bits_dat = wb_imem_host_io_wbMasterTransmitter_bits_dat; // @[Top.scala 231:39]
+  assign wb_imem_slave_io_wbMasterReceiver_bits_sel = wb_imem_host_io_wbMasterTransmitter_bits_sel; // @[Top.scala 231:39]
+  assign wb_imem_slave_io_rspIn_valid = imem_io_rsp_valid; // @[Top.scala 228:26]
+  assign wb_imem_slave_io_rspIn_bits_dataResponse = imem_io_rsp_bits_dataResponse; // @[Top.scala 228:26]
+  assign wb_imem_slave_io_rspIn_bits_error = 1'h0; // @[Top.scala 228:26]
+  assign wb_dmem_host_clock = clock;
+  assign wb_dmem_host_reset = reset;
+  assign wb_dmem_host_io_wbMasterTransmitter_ready = 1'h1; // @[Top.scala 242:20]
+  assign wb_dmem_host_io_wbSlaveReceiver_bits_ack = switch_io_hostOut_bits_ack; // @[Top.scala 243:21]
+  assign wb_dmem_host_io_wbSlaveReceiver_bits_dat = switch_io_hostOut_bits_dat; // @[Top.scala 243:21]
+  assign wb_dmem_host_io_wbSlaveReceiver_bits_err = switch_io_hostOut_bits_err; // @[Top.scala 243:21]
+  assign wb_dmem_host_io_reqIn_valid = core_io_dmemReq_valid; // @[Top.scala 235:25]
+  assign wb_dmem_host_io_reqIn_bits_addrRequest = core_io_dmemReq_bits_addrRequest; // @[Top.scala 235:25]
+  assign wb_dmem_host_io_reqIn_bits_dataRequest = core_io_dmemReq_bits_dataRequest; // @[Top.scala 235:25]
+  assign wb_dmem_host_io_reqIn_bits_activeByteLane = core_io_dmemReq_bits_activeByteLane; // @[Top.scala 235:25]
+  assign wb_dmem_host_io_reqIn_bits_isWrite = core_io_dmemReq_bits_isWrite; // @[Top.scala 235:25]
+  assign wb_dmem_slave_io_wbSlaveTransmitter_ready = 1'h1; // @[Top.scala 245:53]
+  assign wb_dmem_slave_io_wbMasterReceiver_valid = switch_io_devOut_1_valid; // @[Top.scala 246:54]
+  assign wb_dmem_slave_io_wbMasterReceiver_bits_cyc = switch_io_devOut_1_bits_cyc; // @[Top.scala 246:54]
+  assign wb_dmem_slave_io_wbMasterReceiver_bits_stb = switch_io_devOut_1_bits_stb; // @[Top.scala 246:54]
+  assign wb_dmem_slave_io_wbMasterReceiver_bits_we = switch_io_devOut_1_bits_we; // @[Top.scala 246:54]
+  assign wb_dmem_slave_io_wbMasterReceiver_bits_adr = switch_io_devOut_1_bits_adr; // @[Top.scala 246:54]
+  assign wb_dmem_slave_io_wbMasterReceiver_bits_dat = switch_io_devOut_1_bits_dat; // @[Top.scala 246:54]
+  assign wb_dmem_slave_io_wbMasterReceiver_bits_sel = switch_io_devOut_1_bits_sel; // @[Top.scala 246:54]
+  assign wb_dmem_slave_io_rspIn_valid = dmem_io_rsp_valid; // @[Top.scala 238:26]
+  assign wb_dmem_slave_io_rspIn_bits_dataResponse = dmem_io_rsp_bits_dataResponse; // @[Top.scala 238:26]
+  assign wb_dmem_slave_io_rspIn_bits_error = 1'h0; // @[Top.scala 238:26]
+  assign wb_gpio_slave_io_wbSlaveTransmitter_ready = 1'h1; // @[Top.scala 245:53]
+  assign wb_gpio_slave_io_wbMasterReceiver_valid = switch_io_devOut_0_valid; // @[Top.scala 246:54]
+  assign wb_gpio_slave_io_wbMasterReceiver_bits_cyc = switch_io_devOut_0_bits_cyc; // @[Top.scala 246:54]
+  assign wb_gpio_slave_io_wbMasterReceiver_bits_stb = switch_io_devOut_0_bits_stb; // @[Top.scala 246:54]
+  assign wb_gpio_slave_io_wbMasterReceiver_bits_we = switch_io_devOut_0_bits_we; // @[Top.scala 246:54]
+  assign wb_gpio_slave_io_wbMasterReceiver_bits_adr = switch_io_devOut_0_bits_adr; // @[Top.scala 246:54]
+  assign wb_gpio_slave_io_wbMasterReceiver_bits_dat = switch_io_devOut_0_bits_dat; // @[Top.scala 246:54]
+  assign wb_gpio_slave_io_wbMasterReceiver_bits_sel = switch_io_devOut_0_bits_sel; // @[Top.scala 246:54]
+  assign wb_gpio_slave_io_rspIn_valid = gpio_io_rsp_valid; // @[Top.scala 254:26]
+  assign wb_gpio_slave_io_rspIn_bits_dataResponse = gpio_io_rsp_bits_dataResponse; // @[Top.scala 254:26]
+  assign wb_gpio_slave_io_rspIn_bits_error = gpio_io_rsp_bits_error; // @[Top.scala 254:26]
   assign dmem_clock = clock;
   assign dmem_reset = reset;
-  assign dmem_io_req_valid = gen_dmem_slave_io_reqOut_valid; // @[WBGenerator.scala 420:28]
-  assign dmem_io_req_bits_addrRequest = gen_dmem_slave_io_reqOut_bits_addrRequest; // @[WBGenerator.scala 420:28]
-  assign dmem_io_req_bits_dataRequest = gen_dmem_slave_io_reqOut_bits_dataRequest; // @[WBGenerator.scala 420:28]
-  assign dmem_io_req_bits_activeByteLane = gen_dmem_slave_io_reqOut_bits_activeByteLane; // @[WBGenerator.scala 420:28]
-  assign dmem_io_req_bits_isWrite = gen_dmem_slave_io_reqOut_bits_isWrite; // @[WBGenerator.scala 420:28]
+  assign dmem_io_req_valid = wb_dmem_slave_io_reqOut_valid; // @[Top.scala 237:27]
+  assign dmem_io_req_bits_addrRequest = wb_dmem_slave_io_reqOut_bits_addrRequest; // @[Top.scala 237:27]
+  assign dmem_io_req_bits_dataRequest = wb_dmem_slave_io_reqOut_bits_dataRequest; // @[Top.scala 237:27]
+  assign dmem_io_req_bits_activeByteLane = wb_dmem_slave_io_reqOut_bits_activeByteLane; // @[Top.scala 237:27]
+  assign dmem_io_req_bits_isWrite = wb_dmem_slave_io_reqOut_bits_isWrite; // @[Top.scala 237:27]
+  assign imem_clock = clock;
+  assign imem_reset = reset;
+  assign imem_io_req_valid = wb_imem_slave_io_reqOut_valid; // @[Top.scala 227:27]
+  assign imem_io_req_bits_addrRequest = wb_imem_slave_io_reqOut_bits_addrRequest; // @[Top.scala 227:27]
+  assign imem_io_req_bits_isWrite = wb_imem_slave_io_reqOut_bits_isWrite; // @[Top.scala 227:27]
+  assign imem_io_writeEnable = io_rx_we_i; // @[Top.scala 220:23]
+  assign imem_io_addrIn = io_rx_addr_i; // @[Top.scala 221:18]
+  assign imem_io_dataIn = io_rx_wdata_i; // @[Top.scala 222:18]
+  assign gpio_clock = clock;
+  assign gpio_reset = reset;
+  assign gpio_io_req_valid = wb_gpio_slave_io_reqOut_valid; // @[Top.scala 253:27]
+  assign gpio_io_req_bits_addrRequest = wb_gpio_slave_io_reqOut_bits_addrRequest; // @[Top.scala 253:27]
+  assign gpio_io_req_bits_dataRequest = wb_gpio_slave_io_reqOut_bits_dataRequest; // @[Top.scala 253:27]
+  assign gpio_io_req_bits_activeByteLane = wb_gpio_slave_io_reqOut_bits_activeByteLane; // @[Top.scala 253:27]
+  assign gpio_io_req_bits_isWrite = wb_gpio_slave_io_reqOut_bits_isWrite; // @[Top.scala 253:27]
+  assign gpio_io_cio_gpio_i = io_gpio_i; // @[Top.scala 258:22]
   assign wbErr_clock = clock;
   assign wbErr_reset = reset;
-  assign wbErr_io_wbMasterReceiver_valid = switch_io_devOut_2_valid; // @[WBGenerator.scala 432:34]
-  assign wbErr_io_wbMasterReceiver_bits_cyc = switch_io_devOut_2_bits_cyc; // @[WBGenerator.scala 432:34]
-  assign wbErr_io_wbMasterReceiver_bits_stb = switch_io_devOut_2_bits_stb; // @[WBGenerator.scala 432:34]
+  assign wbErr_io_wbMasterReceiver_valid = switch_io_devOut_2_valid; // @[Top.scala 249:34]
+  assign wbErr_io_wbMasterReceiver_bits_cyc = switch_io_devOut_2_bits_cyc; // @[Top.scala 249:34]
+  assign wbErr_io_wbMasterReceiver_bits_stb = switch_io_devOut_2_bits_stb; // @[Top.scala 249:34]
   assign core_clock = clock;
   assign core_reset = reset;
-  assign core_io_stall = ~puart_io_done & _GEN_22; // @[WBGenerator.scala 300:23 WBGenerator.scala 289:17]
-  assign core_io_dmemRsp_valid = gen_dmem_host_io_rspOut_valid; // @[WBGenerator.scala 419:19]
-  assign core_io_dmemRsp_bits_dataResponse = gen_dmem_host_io_rspOut_bits_dataResponse; // @[WBGenerator.scala 419:19]
-  assign core_io_imemReq_ready = ~puart_io_done | gen_imem_host_io_reqIn_ready; // @[WBGenerator.scala 300:23 WBGenerator.scala 398:27 WBGenerator.scala 402:32]
-  assign core_io_imemRsp_valid = ~puart_io_done ? 1'h0 : gen_imem_host_io_rspOut_valid; // @[WBGenerator.scala 300:23 WBGenerator.scala 397:27 WBGenerator.scala 403:25]
-  assign core_io_imemRsp_bits_dataResponse = ~puart_io_done ? 32'h0 : gen_imem_host_io_rspOut_bits_dataResponse; // @[WBGenerator.scala 300:23 WBGenerator.scala 394:39 WBGenerator.scala 403:25]
-  assign switch_io_hostIn_valid = gen_dmem_host_io_wbMasterTransmitter_valid; // @[WBGenerator.scala 425:20]
-  assign switch_io_hostIn_bits_cyc = gen_dmem_host_io_wbMasterTransmitter_bits_cyc; // @[WBGenerator.scala 425:20]
-  assign switch_io_hostIn_bits_stb = gen_dmem_host_io_wbMasterTransmitter_bits_stb; // @[WBGenerator.scala 425:20]
-  assign switch_io_hostIn_bits_we = gen_dmem_host_io_wbMasterTransmitter_bits_we; // @[WBGenerator.scala 425:20]
-  assign switch_io_hostIn_bits_adr = gen_dmem_host_io_wbMasterTransmitter_bits_adr; // @[WBGenerator.scala 425:20]
-  assign switch_io_hostIn_bits_dat = gen_dmem_host_io_wbMasterTransmitter_bits_dat; // @[WBGenerator.scala 425:20]
-  assign switch_io_hostIn_bits_sel = gen_dmem_host_io_wbMasterTransmitter_bits_sel; // @[WBGenerator.scala 425:20]
-  assign switch_io_devIn_0_bits_ack = gen_dmem_slave_io_wbSlaveTransmitter_bits_ack; // @[WBGenerator.scala 428:53]
-  assign switch_io_devIn_0_bits_dat = gen_dmem_slave_io_wbSlaveTransmitter_bits_dat; // @[WBGenerator.scala 428:53]
-  assign switch_io_devIn_0_bits_err = gen_dmem_slave_io_wbSlaveTransmitter_bits_err; // @[WBGenerator.scala 428:53]
-  assign switch_io_devIn_1_bits_ack = gen_gpio_slave_io_wbSlaveTransmitter_bits_ack; // @[WBGenerator.scala 428:53]
-  assign switch_io_devIn_1_bits_dat = gen_gpio_slave_io_wbSlaveTransmitter_bits_dat; // @[WBGenerator.scala 428:53]
-  assign switch_io_devIn_1_bits_err = gen_gpio_slave_io_wbSlaveTransmitter_bits_err; // @[WBGenerator.scala 428:53]
-  assign switch_io_devIn_2_bits_dat = wbErr_io_wbSlaveTransmitter_bits_dat; // @[WBGenerator.scala 431:33]
-  assign switch_io_devIn_2_bits_err = wbErr_io_wbSlaveTransmitter_bits_err; // @[WBGenerator.scala 431:33]
+  assign core_io_dmemRsp_valid = wb_dmem_host_io_rspOut_valid; // @[Top.scala 236:19]
+  assign core_io_dmemRsp_bits_dataResponse = wb_dmem_host_io_rspOut_bits_dataResponse; // @[Top.scala 236:19]
+  assign core_io_imemReq_ready = wb_imem_host_io_reqIn_ready; // @[Top.scala 225:25]
+  assign core_io_imemRsp_valid = wb_imem_host_io_rspOut_valid; // @[Top.scala 226:19]
+  assign core_io_imemRsp_bits_dataResponse = wb_imem_host_io_rspOut_bits_dataResponse; // @[Top.scala 226:19]
+  assign switch_io_hostIn_valid = wb_dmem_host_io_wbMasterTransmitter_valid; // @[Top.scala 242:20]
+  assign switch_io_hostIn_bits_cyc = wb_dmem_host_io_wbMasterTransmitter_bits_cyc; // @[Top.scala 242:20]
+  assign switch_io_hostIn_bits_stb = wb_dmem_host_io_wbMasterTransmitter_bits_stb; // @[Top.scala 242:20]
+  assign switch_io_hostIn_bits_we = wb_dmem_host_io_wbMasterTransmitter_bits_we; // @[Top.scala 242:20]
+  assign switch_io_hostIn_bits_adr = wb_dmem_host_io_wbMasterTransmitter_bits_adr; // @[Top.scala 242:20]
+  assign switch_io_hostIn_bits_dat = wb_dmem_host_io_wbMasterTransmitter_bits_dat; // @[Top.scala 242:20]
+  assign switch_io_hostIn_bits_sel = wb_dmem_host_io_wbMasterTransmitter_bits_sel; // @[Top.scala 242:20]
+  assign switch_io_devIn_0_bits_ack = wb_gpio_slave_io_wbSlaveTransmitter_bits_ack; // @[Top.scala 245:53]
+  assign switch_io_devIn_0_bits_dat = wb_gpio_slave_io_wbSlaveTransmitter_bits_dat; // @[Top.scala 245:53]
+  assign switch_io_devIn_0_bits_err = wb_gpio_slave_io_wbSlaveTransmitter_bits_err; // @[Top.scala 245:53]
+  assign switch_io_devIn_1_bits_ack = wb_dmem_slave_io_wbSlaveTransmitter_bits_ack; // @[Top.scala 245:53]
+  assign switch_io_devIn_1_bits_dat = wb_dmem_slave_io_wbSlaveTransmitter_bits_dat; // @[Top.scala 245:53]
+  assign switch_io_devIn_1_bits_err = wb_dmem_slave_io_wbSlaveTransmitter_bits_err; // @[Top.scala 245:53]
+  assign switch_io_devIn_2_bits_dat = wbErr_io_wbSlaveTransmitter_bits_dat; // @[Top.scala 248:33]
+  assign switch_io_devIn_2_bits_err = wbErr_io_wbSlaveTransmitter_bits_err; // @[Top.scala 248:33]
   assign switch_io_devSel = switch_io_devSel_addr_hit_0 ? switch_io_devSel_id_0 : _switch_io_devSel_T; // @[Mux.scala 98:16]
-  assign puart_clock = clock;
-  assign puart_reset = reset;
-  assign puart_io_isStalled = ~puart_io_done & _GEN_23; // @[WBGenerator.scala 300:23 WBGenerator.scala 290:24]
-  assign puart_io_CLK_PER_BIT = io_CLK_PER_BIT; // @[WBGenerator.scala 287:24]
-  assign puart_io_rxd = io_rx_i; // @[WBGenerator.scala 286:16]
-  always @(posedge clock) begin
-    if (reset) begin // @[WBGenerator.scala 293:22]
-      state <= 2'h0; // @[WBGenerator.scala 293:22]
-    end else if (~puart_io_done) begin // @[WBGenerator.scala 300:23]
-      if (state == 2'h0) begin // @[WBGenerator.scala 307:25]
-        if (reset_reg & ~reset) begin // @[WBGenerator.scala 309:66]
-          state <= 2'h1; // @[WBGenerator.scala 310:19]
-        end else begin
-          state <= 2'h0; // @[WBGenerator.scala 312:19]
-        end
-      end else if (state == 2'h1) begin // @[WBGenerator.scala 324:35]
-        state <= _GEN_2;
-      end else begin
-        state <= _GEN_5;
-      end
-    end
-    reset_reg <= reset; // @[WBGenerator.scala 294:26 WBGenerator.scala 294:26 WBGenerator.scala 295:13]
-    if (reset) begin // @[WBGenerator.scala 296:52]
-      rx_data_reg <= 32'h0; // @[WBGenerator.scala 296:52]
-    end else if (~puart_io_done) begin // @[WBGenerator.scala 300:23]
-      if (!(state == 2'h0)) begin // @[WBGenerator.scala 307:25]
-        if (state == 2'h1) begin // @[WBGenerator.scala 324:35]
-          rx_data_reg <= _rx_data_reg_T; // @[WBGenerator.scala 353:40]
-        end
-      end
-    end
-    if (reset) begin // @[WBGenerator.scala 297:52]
-      rx_addr_reg <= 32'h0; // @[WBGenerator.scala 297:52]
-    end else if (~puart_io_done) begin // @[WBGenerator.scala 300:23]
-      if (!(state == 2'h0)) begin // @[WBGenerator.scala 307:25]
-        if (state == 2'h1) begin // @[WBGenerator.scala 324:35]
-          rx_addr_reg <= {{22'd0}, _rx_addr_reg_T_1}; // @[WBGenerator.scala 355:40]
-        end
-      end
-    end
-  end
-// Register and memory initialization
-`ifdef RANDOMIZE_GARBAGE_ASSIGN
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_INVALID_ASSIGN
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_REG_INIT
-`define RANDOMIZE
-`endif
-`ifdef RANDOMIZE_MEM_INIT
-`define RANDOMIZE
-`endif
-`ifndef RANDOM
-`define RANDOM $random
-`endif
-`ifdef RANDOMIZE_MEM_INIT
-  integer initvar;
-`endif
-`ifndef SYNTHESIS
-`ifdef FIRRTL_BEFORE_INITIAL
-`FIRRTL_BEFORE_INITIAL
-`endif
-initial begin
-  `ifdef RANDOMIZE
-    `ifdef INIT_RANDOM
-      `INIT_RANDOM
-    `endif
-    `ifndef VERILATOR
-      `ifdef RANDOMIZE_DELAY
-        #`RANDOMIZE_DELAY begin end
-      `else
-        #0.002 begin end
-      `endif
-    `endif
-`ifdef RANDOMIZE_REG_INIT
-  _RAND_0 = {1{`RANDOM}};
-  state = _RAND_0[1:0];
-  _RAND_1 = {1{`RANDOM}};
-  reset_reg = _RAND_1[0:0];
-  _RAND_2 = {1{`RANDOM}};
-  rx_data_reg = _RAND_2[31:0];
-  _RAND_3 = {1{`RANDOM}};
-  rx_addr_reg = _RAND_3[31:0];
-`endif // RANDOMIZE_REG_INIT
-  `endif // RANDOMIZE
-end // initial
-`ifdef FIRRTL_AFTER_INITIAL
-`FIRRTL_AFTER_INITIAL
-`endif
-`endif // SYNTHESIS
 endmodule
diff --git a/verilog/rtl/iccm_controller.v b/verilog/rtl/iccm_controller.v
new file mode 100644
index 0000000..b69a743
--- /dev/null
+++ b/verilog/rtl/iccm_controller.v
@@ -0,0 +1,135 @@
+
+
+// Licensed under the Apache License, Version 2.0, see LICENSE for details.
+// SPDX-License-Identifier: Apache-2.0
+
+module iccm_controller (
+	clk_i,
+	rst_ni,
+	prog_i,
+	rx_dv_i,
+	rx_byte_i,
+	we_o,
+	addr_o,
+	wdata_o,
+	reset_o
+);
+	input wire clk_i;
+	input wire rst_ni;
+	input wire prog_i;
+	input wire rx_dv_i;
+	input wire [7:0] rx_byte_i;
+	output wire we_o;
+	output wire [11:0] addr_o;
+	output wire [31:0] wdata_o;
+	output wire reset_o;
+	reg [1:0] ctrl_fsm_cs;
+	reg [1:0] ctrl_fsm_ns;
+	wire [7:0] rx_byte_d;
+	reg [7:0] rx_byte_q0;
+	reg [7:0] rx_byte_q1;
+	reg [7:0] rx_byte_q2;
+	reg [7:0] rx_byte_q3;
+	reg we_q;
+	reg we_d;
+	reg [11:0] addr_q;
+	reg [11:0] addr_d;
+	reg reset_q;
+	reg reset_d;
+	reg [1:0] byte_count;
+	localparam [1:0] DONE = 3;
+	localparam [1:0] LOAD = 1;
+	localparam [1:0] PROG = 2;
+	localparam [1:0] RESET = 0;
+	always @(*) begin
+		we_d    = we_q;
+		addr_d  = addr_q;
+		reset_d = reset_q;
+		ctrl_fsm_ns = ctrl_fsm_cs;
+		case (ctrl_fsm_cs)
+			RESET: begin
+				we_d = 1'b0;
+				reset_d = 1'b0;
+				if (rx_dv_i)
+					ctrl_fsm_ns = LOAD;
+				else
+					ctrl_fsm_ns = RESET;
+			end
+			LOAD:
+				if (((byte_count == 2'b11) && (rx_byte_q2 != 8'h0f)) && (rx_byte_d != 8'hff)) begin
+					we_d = 1'b1;
+					ctrl_fsm_ns = PROG;
+				end
+				else
+					ctrl_fsm_ns = DONE;
+			PROG: begin
+				we_d = 1'b0;
+				ctrl_fsm_ns = DONE;
+			end
+			DONE:
+				if (wdata_o == 32'h00000fff || (!rst_ni)) begin
+					ctrl_fsm_ns = DONE;
+					reset_d = 1'b1;
+				end
+				else if (rx_dv_i)
+					ctrl_fsm_ns = LOAD;
+				else
+					ctrl_fsm_ns = DONE;
+		//	default: ctrl_fsm_ns = RESET;
+		endcase
+	end
+	assign rx_byte_d = rx_byte_i;
+	assign we_o = we_q;
+	assign addr_o = addr_q;
+	assign wdata_o = {rx_byte_q0, rx_byte_q1, rx_byte_q2, rx_byte_q3};
+	assign reset_o = reset_q;
+	always @(posedge clk_i or negedge rst_ni)
+		if (!rst_ni) begin
+			we_q <= 1'b0;
+			addr_q <= 12'b000000000000;
+			rx_byte_q0 <= 8'b00000000;
+			rx_byte_q1 <= 8'b00000000;
+			rx_byte_q2 <= 8'b00000000;
+			rx_byte_q3 <= 8'b00000000;
+			reset_q <= 1'b1;
+			byte_count <= 2'b00;
+			ctrl_fsm_cs <= DONE;
+		end
+		else if (prog_i) begin
+            we_q <= 1'b0;
+            addr_q <= 12'b000000000000;
+            rx_byte_q0 <= 8'b00000000;
+            rx_byte_q1 <= 8'b00000000;
+            rx_byte_q2 <= 8'b00000000;
+            rx_byte_q3 <= 8'b00000000;
+            reset_q <= 1'b0;
+            byte_count <= 2'b00;
+            ctrl_fsm_cs <= RESET;
+		end
+		else begin
+			we_q <= we_d;
+			if (ctrl_fsm_cs == LOAD) begin
+				if (byte_count == 2'b00) begin
+					rx_byte_q0 <= rx_byte_d;
+					byte_count <= 2'b01;
+				end
+				else if (byte_count == 2'b01) begin
+					rx_byte_q1 <= rx_byte_d;
+					byte_count <= 2'b10;
+				end
+				else if (byte_count == 2'b10) begin
+					rx_byte_q2 <= rx_byte_d;
+					byte_count <= 2'b11;
+				end
+				else begin
+					rx_byte_q3 <= rx_byte_d;
+					byte_count <= 2'b00;
+				end
+				addr_q <= addr_d;
+			end
+			if (ctrl_fsm_cs == PROG)
+				addr_q <= addr_d + 1'b1;
+			reset_q <= reset_d;
+			ctrl_fsm_cs <= ctrl_fsm_ns;
+		end
+endmodule
diff --git a/verilog/rtl/prog_uart_top.v b/verilog/rtl/prog_uart_top.v
new file mode 100644
index 0000000..2b1957d
--- /dev/null
+++ b/verilog/rtl/prog_uart_top.v
@@ -0,0 +1,46 @@
+module prog_uart_top(  
+  input           clock,
+  input           reset,
+  output [31:0]   io_gpio_o,
+  output [31:0]   io_gpio_en_o,
+  input  [31:0]   io_gpio_i,
+  input           io_rx_i,
+  input  [15:0]   io_CLK_PER_BIT,
+  output          boot,
+  input           prog_i);
+
+wire        io_rx_we;
+wire [31:0] io_rx_wdata;
+wire        rst;
+wire [31:0] io_rx_addr;
+wire        a_clk;
+
+assign boot = rst;
+
+Top u_top(
+  .clock(clock),
+  .reset(reset | ~rst),
+  .io_gpio_o(io_gpio_o),
+  .io_gpio_en_o(io_gpio_en_o),
+  .io_gpio_i(io_gpio_i),
+  .io_rx_we_i(~io_rx_we),
+  .io_rx_addr_i(io_rx_addr),
+  .io_rx_wdata_i(io_rx_wdata),
+  .io_rx_reset_i(rst)
+);
+
+programmer u_programmer(
+  .clk_i(clock),
+  .rst_ni(~reset),
+  .prog_i(prog_i),
+  .rx_i(io_rx_i),
+  .clks_per_bit(io_CLK_PER_BIT),
+  .we_o(io_rx_we),
+  .addr_o(io_rx_addr),
+  .wdata_o(io_rx_wdata),
+  .reset_o(rst));
+
+
+
+
+endmodule
diff --git a/verilog/rtl/programmer.v b/verilog/rtl/programmer.v
new file mode 100644
index 0000000..9980bb5
--- /dev/null
+++ b/verilog/rtl/programmer.v
@@ -0,0 +1,44 @@
+
+module programmer
+(
+
+  input wire clk_i,
+  input wire rst_ni,
+
+  input wire        prog_i,
+  input wire        rx_i,
+  input wire [15:0] clks_per_bit,
+
+  output wire 	     we_o,
+  output wire [11:0] addr_o,
+  output wire [31:0] wdata_o,
+  output wire 	     reset_o
+);
+
+  wire       rx_dv;
+  wire [7:0] rx_byte;
+
+iccm_controller u_iccm_ctrl(
+ .clk_i		(clk_i),
+ .rst_ni	(rst_ni),
+ .prog_i	(prog_i),
+ .rx_dv_i	(rx_dv),
+ .rx_byte_i	(rx_byte),
+ .we_o		(we_o),
+ .addr_o	(addr_o),
+ .wdata_o	(wdata_o),
+ .reset_o	(reset_o)
+);
+
+
+uart_rx_prog u_prog_uart(
+  .clk_i	(clk_i),
+  .rst_ni	(rst_ni),
+  .i_Rx_Serial	(rx_i),
+  .CLKS_PER_BIT	(clks_per_bit),
+  .o_Rx_DV	(rx_dv),
+  .o_Rx_Byte	(rx_byte)
+);
+
+
+endmodule
diff --git a/verilog/rtl/soc_now_caravel_top.v b/verilog/rtl/soc_now_caravel_top.v
index 01887dd..01567ce 100644
--- a/verilog/rtl/soc_now_caravel_top.v
+++ b/verilog/rtl/soc_now_caravel_top.v
@@ -84,12 +84,15 @@
 assign io_oeb[5] = 1'b1;
 assign io_out[5] = 1'b0;
 
+assign io_oeb[3] = 1'b0;
+assign io_oeb[4] = 1'b1;
+
 // gpio
 assign io_out[37:6] = gpio_o;
 assign gpio_i = io_in[37:6];
 assign io_oeb[37:6] = ~gpio_oe;
 
-Caravel_Top soc_top (
+prog_uart_top soc_top (
 `ifdef USE_POWER_PINS
 	.vccd1(vccd1),	// User area 1 1.8V power
 	.vssd1(vssd1),	// User area 1 digital ground
@@ -101,7 +104,9 @@
   .io_gpio_en_o (gpio_oe),
   .io_gpio_i (gpio_i),
   .io_rx_i (io_in[5]),
-  .io_CLK_PER_BIT (la_data_in[15:0])
+  .io_CLK_PER_BIT (la_data_in[15:0]),
+  .boot(io_out[3]),
+  .prog_i(io_in[4])
 );
 
 endmodule	// user_project_wrapper
