diff --git a/verilog/rtl/DMem.v b/verilog/rtl/DMem.v
new file mode 100644
index 0000000..7108a81
--- /dev/null
+++ b/verilog/rtl/DMem.v
@@ -0,0 +1,178 @@
+module DMem( // @[:@12681.2]
+  input         clock, // @[:@12682.4]
+  input  [7:0]  io_addr, // @[:@12684.4]
+  input  [31:0] io_wdata, // @[:@12684.4]
+  output [31:0] io_rdata, // @[:@12684.4]
+  input         io_cs, // @[:@12684.4]
+  input         io_wr_en, // @[:@12684.4]
+  input  [3:0]  io_st_type // @[:@12684.4]
+);
+  reg [7:0] dmem [0:1023]; // @[dmemory.scala 26:26:@12686.4]
+  reg [31:0] _RAND_0;
+  wire [7:0] dmem__T_65_data; // @[dmemory.scala 26:26:@12686.4]
+  wire [9:0] dmem__T_65_addr; // @[dmemory.scala 26:26:@12686.4]
+  wire [7:0] dmem__T_69_data; // @[dmemory.scala 26:26:@12686.4]
+  wire [9:0] dmem__T_69_addr; // @[dmemory.scala 26:26:@12686.4]
+  wire [7:0] dmem__T_73_data; // @[dmemory.scala 26:26:@12686.4]
+  wire [9:0] dmem__T_73_addr; // @[dmemory.scala 26:26:@12686.4]
+  wire [7:0] dmem__T_74_data; // @[dmemory.scala 26:26:@12686.4]
+  wire [9:0] dmem__T_74_addr; // @[dmemory.scala 26:26:@12686.4]
+  wire [7:0] dmem__T_38_data; // @[dmemory.scala 26:26:@12686.4]
+  wire [9:0] dmem__T_38_addr; // @[dmemory.scala 26:26:@12686.4]
+  wire  dmem__T_38_mask; // @[dmemory.scala 26:26:@12686.4]
+  wire  dmem__T_38_en; // @[dmemory.scala 26:26:@12686.4]
+  wire [7:0] dmem__T_45_data; // @[dmemory.scala 26:26:@12686.4]
+  wire [9:0] dmem__T_45_addr; // @[dmemory.scala 26:26:@12686.4]
+  wire  dmem__T_45_mask; // @[dmemory.scala 26:26:@12686.4]
+  wire  dmem__T_45_en; // @[dmemory.scala 26:26:@12686.4]
+  wire [7:0] dmem__T_52_data; // @[dmemory.scala 26:26:@12686.4]
+  wire [9:0] dmem__T_52_addr; // @[dmemory.scala 26:26:@12686.4]
+  wire  dmem__T_52_mask; // @[dmemory.scala 26:26:@12686.4]
+  wire  dmem__T_52_en; // @[dmemory.scala 26:26:@12686.4]
+  wire [7:0] dmem__T_59_data; // @[dmemory.scala 26:26:@12686.4]
+  wire [9:0] dmem__T_59_addr; // @[dmemory.scala 26:26:@12686.4]
+  wire  dmem__T_59_mask; // @[dmemory.scala 26:26:@12686.4]
+  wire  dmem__T_59_en; // @[dmemory.scala 26:26:@12686.4]
+  wire  mem_wr; // @[dmemory.scala 31:27:@12687.4]
+  wire  _T_36; // @[dmemory.scala 40:18:@12690.6]
+  wire  _GEN_3; // @[dmemory.scala 40:30:@12692.6]
+  wire  _T_40; // @[dmemory.scala 43:18:@12697.6]
+  wire [8:0] _T_43; // @[dmemory.scala 44:17:@12700.8]
+  wire [7:0] _T_44; // @[dmemory.scala 44:17:@12701.8]
+  wire  _T_47; // @[dmemory.scala 46:18:@12706.6]
+  wire [8:0] _T_50; // @[dmemory.scala 47:17:@12709.8]
+  wire [7:0] _T_51; // @[dmemory.scala 47:17:@12710.8]
+  wire  _T_54; // @[dmemory.scala 49:18:@12715.6]
+  wire [8:0] _T_57; // @[dmemory.scala 50:17:@12718.8]
+  wire [7:0] _T_58; // @[dmemory.scala 50:17:@12719.8]
+  wire [15:0] _T_75; // @[Cat.scala 30:58:@12736.4]
+  wire [15:0] _T_76; // @[Cat.scala 30:58:@12737.4]
+  wire [9:0] _GEN_41;
+  reg [9:0] dmem__T_65_addr_pipe_0;
+  reg [31:0] _RAND_1;
+  wire [9:0] _GEN_43;
+  reg [9:0] dmem__T_69_addr_pipe_0;
+  reg [31:0] _RAND_2;
+  wire [9:0] _GEN_45;
+  reg [9:0] dmem__T_73_addr_pipe_0;
+  reg [31:0] _RAND_3;
+  wire [9:0] _GEN_47;
+  reg [9:0] dmem__T_74_addr_pipe_0;
+  reg [31:0] _RAND_4;
+  assign dmem__T_65_addr = dmem__T_65_addr_pipe_0;
+  assign dmem__T_65_data = dmem[dmem__T_65_addr]; // @[dmemory.scala 26:26:@12686.4]
+  assign dmem__T_69_addr = dmem__T_69_addr_pipe_0;
+  assign dmem__T_69_data = dmem[dmem__T_69_addr]; // @[dmemory.scala 26:26:@12686.4]
+  assign dmem__T_73_addr = dmem__T_73_addr_pipe_0;
+  assign dmem__T_73_data = dmem[dmem__T_73_addr]; // @[dmemory.scala 26:26:@12686.4]
+  assign dmem__T_74_addr = dmem__T_74_addr_pipe_0;
+  assign dmem__T_74_data = dmem[dmem__T_74_addr]; // @[dmemory.scala 26:26:@12686.4]
+  assign dmem__T_38_data = io_wdata[7:0];
+  assign dmem__T_38_addr = {{2'd0}, io_addr};
+  assign dmem__T_38_mask = 1'h1;
+  assign dmem__T_38_en = mem_wr ? _T_36 : 1'h0;
+  assign dmem__T_45_data = io_wdata[15:8];
+  assign dmem__T_45_addr = {{2'd0}, _T_44};
+  assign dmem__T_45_mask = 1'h1;
+  assign dmem__T_45_en = mem_wr ? _T_40 : 1'h0;
+  assign dmem__T_52_data = io_wdata[23:16];
+  assign dmem__T_52_addr = {{2'd0}, _T_51};
+  assign dmem__T_52_mask = 1'h1;
+  assign dmem__T_52_en = mem_wr ? _T_47 : 1'h0;
+  assign dmem__T_59_data = io_wdata[31:24];
+  assign dmem__T_59_addr = {{2'd0}, _T_58};
+  assign dmem__T_59_mask = 1'h1;
+  assign dmem__T_59_en = mem_wr ? _T_54 : 1'h0;
+  assign mem_wr = io_wr_en & io_cs; // @[dmemory.scala 31:27:@12687.4]
+  assign _T_36 = io_st_type[0]; // @[dmemory.scala 40:18:@12690.6]
+  assign _GEN_3 = 1'h1; // @[dmemory.scala 40:30:@12692.6]
+  assign _T_40 = io_st_type[1]; // @[dmemory.scala 43:18:@12697.6]
+  assign _T_43 = io_addr + 8'h1; // @[dmemory.scala 44:17:@12700.8]
+  assign _T_44 = io_addr + 8'h1; // @[dmemory.scala 44:17:@12701.8]
+  assign _T_47 = io_st_type[2]; // @[dmemory.scala 46:18:@12706.6]
+  assign _T_50 = io_addr + 8'h2; // @[dmemory.scala 47:17:@12709.8]
+  assign _T_51 = io_addr + 8'h2; // @[dmemory.scala 47:17:@12710.8]
+  assign _T_54 = io_st_type[3]; // @[dmemory.scala 49:18:@12715.6]
+  assign _T_57 = io_addr + 8'h3; // @[dmemory.scala 50:17:@12718.8]
+  assign _T_58 = io_addr + 8'h3; // @[dmemory.scala 50:17:@12719.8]
+  assign _T_75 = {dmem__T_73_data,dmem__T_74_data}; // @[Cat.scala 30:58:@12736.4]
+  assign _T_76 = {dmem__T_65_data,dmem__T_69_data}; // @[Cat.scala 30:58:@12737.4]
+  assign io_rdata = {_T_76,_T_75}; // @[dmemory.scala 57:12:@12740.4]
+  assign _GEN_41 = {{2'd0}, _T_58};
+  assign _GEN_43 = {{2'd0}, _T_51};
+  assign _GEN_45 = {{2'd0}, _T_44};
+  assign _GEN_47 = {{2'd0}, io_addr};
+`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
+  integer initvar;
+  initial begin
+    `ifdef INIT_RANDOM
+      `INIT_RANDOM
+    `endif
+    `ifndef VERILATOR
+      #0.002 begin end
+    `endif
+  _RAND_0 = {1{`RANDOM}};
+  `ifdef RANDOMIZE_MEM_INIT
+  for (initvar = 0; initvar < 1024; initvar = initvar+1)
+    dmem[initvar] = _RAND_0[7:0];
+  `endif // RANDOMIZE_MEM_INIT
+  `ifdef RANDOMIZE_REG_INIT
+  _RAND_1 = {1{`RANDOM}};
+  dmem__T_65_addr_pipe_0 = _RAND_1[9:0];
+  `endif // RANDOMIZE_REG_INIT
+  `ifdef RANDOMIZE_REG_INIT
+  _RAND_2 = {1{`RANDOM}};
+  dmem__T_69_addr_pipe_0 = _RAND_2[9:0];
+  `endif // RANDOMIZE_REG_INIT
+  `ifdef RANDOMIZE_REG_INIT
+  _RAND_3 = {1{`RANDOM}};
+  dmem__T_73_addr_pipe_0 = _RAND_3[9:0];
+  `endif // RANDOMIZE_REG_INIT
+  `ifdef RANDOMIZE_REG_INIT
+  _RAND_4 = {1{`RANDOM}};
+  dmem__T_74_addr_pipe_0 = _RAND_4[9:0];
+  `endif // RANDOMIZE_REG_INIT
+  end
+`endif // RANDOMIZE
+  always @(posedge clock) begin
+    if(dmem__T_38_en & dmem__T_38_mask) begin
+      dmem[dmem__T_38_addr] <= dmem__T_38_data; // @[dmemory.scala 26:26:@12686.4]
+    end
+    if(dmem__T_45_en & dmem__T_45_mask) begin
+      dmem[dmem__T_45_addr] <= dmem__T_45_data; // @[dmemory.scala 26:26:@12686.4]
+    end
+    if(dmem__T_52_en & dmem__T_52_mask) begin
+      dmem[dmem__T_52_addr] <= dmem__T_52_data; // @[dmemory.scala 26:26:@12686.4]
+    end
+    if(dmem__T_59_en & dmem__T_59_mask) begin
+      dmem[dmem__T_59_addr] <= dmem__T_59_data; // @[dmemory.scala 26:26:@12686.4]
+    end
+    if (_GEN_3) begin
+      dmem__T_65_addr_pipe_0 <= _GEN_41;
+    end
+    if (_GEN_3) begin
+      dmem__T_69_addr_pipe_0 <= _GEN_43;
+    end
+    if (_GEN_3) begin
+      dmem__T_73_addr_pipe_0 <= _GEN_45;
+    end
+    if (_GEN_3) begin
+      dmem__T_74_addr_pipe_0 <= _GEN_47;
+    end
+  end
+endmodule
diff --git a/verilog/rtl/IMem.v b/verilog/rtl/IMem.v
new file mode 100644
index 0000000..1df1163
--- /dev/null
+++ b/verilog/rtl/IMem.v
@@ -0,0 +1,73 @@
+module IMem( // @[:@12666.2]
+  input         clock, // @[:@12667.4]
+  input  [8:0]  io_addr, // @[:@12669.4]
+  output [31:0] io_rdata, // @[:@12669.4]
+  input  [31:0] io_wdata, // @[:@12669.4]
+  input         io_wr_en, // @[:@12669.4]
+  input         io_cs // @[:@12669.4]
+);
+  reg [31:0] imem [0:2047]; // @[imemory.scala 26:25:@12671.4]
+  reg [31:0] _RAND_0;
+  wire [31:0] imem__T_37_data; // @[imemory.scala 26:25:@12671.4]
+  wire [10:0] imem__T_37_addr; // @[imemory.scala 26:25:@12671.4]
+  wire [31:0] imem__T_36_data; // @[imemory.scala 26:25:@12671.4]
+  wire [10:0] imem__T_36_addr; // @[imemory.scala 26:25:@12671.4]
+  wire  imem__T_36_mask; // @[imemory.scala 26:25:@12671.4]
+  wire  imem__T_36_en; // @[imemory.scala 26:25:@12671.4]
+  wire  _GEN_3; // @[imemory.scala 41:17:@12674.4]
+  wire [10:0] _GEN_6;
+  reg [10:0] imem__T_37_addr_pipe_0;
+  reg [31:0] _RAND_1;
+  assign imem__T_37_addr = imem__T_37_addr_pipe_0;
+  assign imem__T_37_data = imem[imem__T_37_addr]; // @[imemory.scala 26:25:@12671.4]
+  assign imem__T_36_data = io_wdata;
+  assign imem__T_36_addr = {{2'd0}, io_addr};
+  assign imem__T_36_mask = 1'h1;
+  assign imem__T_36_en = io_wr_en & io_cs;
+  assign _GEN_3 = 1'h1; // @[imemory.scala 41:17:@12674.4]
+  assign io_rdata = imem__T_37_data; // @[imemory.scala 45:12:@12679.4]
+  assign _GEN_6 = {{2'd0}, io_addr};
+`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
+  integer initvar;
+  initial begin
+    `ifdef INIT_RANDOM
+      `INIT_RANDOM
+    `endif
+    `ifndef VERILATOR
+      #0.002 begin end
+    `endif
+  _RAND_0 = {1{`RANDOM}};
+  `ifdef RANDOMIZE_MEM_INIT
+  for (initvar = 0; initvar < 2048; initvar = initvar+1)
+    imem[initvar] = _RAND_0[31:0];
+  `endif // RANDOMIZE_MEM_INIT
+  `ifdef RANDOMIZE_REG_INIT
+  _RAND_1 = {1{`RANDOM}};
+  imem__T_37_addr_pipe_0 = _RAND_1[10:0];
+  `endif // RANDOMIZE_REG_INIT
+  end
+`endif // RANDOMIZE
+  always @(posedge clock) begin
+    if(imem__T_36_en & imem__T_36_mask) begin
+      imem[imem__T_36_addr] <= imem__T_36_data; // @[imemory.scala 26:25:@12671.4]
+    end
+    if (_GEN_3) begin
+      imem__T_37_addr_pipe_0 <= _GEN_6;
+    end
+  end
+endmodule
\ No newline at end of file
diff --git a/verilog/rtl/Processor_Tile.v b/verilog/rtl/Processor_Tile.v
new file mode 100644
index 0000000..6bc19e4
--- /dev/null
+++ b/verilog/rtl/Processor_Tile.v
@@ -0,0 +1,244 @@
+module Processor_Tile( // @[:@12742.2]
+  input   clock, // @[:@12743.4]
+  input   reset, // @[:@12744.4]
+  output  io_uart_tx, // @[:@12745.4]
+  input   io_uart_rx, // @[:@12745.4]
+  output  io_spi_cs, // @[:@12745.4]
+  output  io_spi_clk, // @[:@12745.4]
+  output  io_spi_mosi, // @[:@12745.4]
+  input   io_spi_miso, // @[:@12745.4]
+  input   io_qei_ch_a, // @[:@12745.4]
+  input   io_qei_ch_b, // @[:@12745.4]
+  output  io_pwm_high, // @[:@12745.4]
+  output  io_pwm_low // @[:@12745.4]
+);
+  wire  core_clock; // @[processor_tile.scala 52:32:@12747.4]
+  wire  core_reset; // @[processor_tile.scala 52:32:@12747.4]
+  wire  core_io_irq_uart_irq; // @[processor_tile.scala 52:32:@12747.4]
+  wire  core_io_irq_spi_irq; // @[processor_tile.scala 52:32:@12747.4]
+  wire  core_io_irq_motor_irq; // @[processor_tile.scala 52:32:@12747.4]
+  wire [31:0] core_io_ibus_addr; // @[processor_tile.scala 52:32:@12747.4]
+  wire [31:0] core_io_ibus_inst; // @[processor_tile.scala 52:32:@12747.4]
+  wire  core_io_ibus_valid; // @[processor_tile.scala 52:32:@12747.4]
+  wire [31:0] core_io_dbus_addr; // @[processor_tile.scala 52:32:@12747.4]
+  wire [31:0] core_io_dbus_wdata; // @[processor_tile.scala 52:32:@12747.4]
+  wire [31:0] core_io_dbus_rdata; // @[processor_tile.scala 52:32:@12747.4]
+  wire  core_io_dbus_rd_en; // @[processor_tile.scala 52:32:@12747.4]
+  wire  core_io_dbus_wr_en; // @[processor_tile.scala 52:32:@12747.4]
+  wire [1:0] core_io_dbus_st_type; // @[processor_tile.scala 52:32:@12747.4]
+  wire [2:0] core_io_dbus_ld_type; // @[processor_tile.scala 52:32:@12747.4]
+  wire  core_io_dbus_valid; // @[processor_tile.scala 52:32:@12747.4]
+  wire  wb_inter_connect_clock; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_reset; // @[processor_tile.scala 53:32:@12750.4]
+  wire [31:0] wb_inter_connect_io_dbus_addr; // @[processor_tile.scala 53:32:@12750.4]
+  wire [31:0] wb_inter_connect_io_dbus_wdata; // @[processor_tile.scala 53:32:@12750.4]
+  wire [31:0] wb_inter_connect_io_dbus_rdata; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_dbus_rd_en; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_dbus_wr_en; // @[processor_tile.scala 53:32:@12750.4]
+  wire [1:0] wb_inter_connect_io_dbus_st_type; // @[processor_tile.scala 53:32:@12750.4]
+  wire [2:0] wb_inter_connect_io_dbus_ld_type; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_dbus_valid; // @[processor_tile.scala 53:32:@12750.4]
+  wire [31:0] wb_inter_connect_io_ibus_addr; // @[processor_tile.scala 53:32:@12750.4]
+  wire [31:0] wb_inter_connect_io_ibus_inst; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_ibus_valid; // @[processor_tile.scala 53:32:@12750.4]
+  wire [8:0] wb_inter_connect_io_imem_io_addr; // @[processor_tile.scala 53:32:@12750.4]
+  wire [31:0] wb_inter_connect_io_imem_io_rdata; // @[processor_tile.scala 53:32:@12750.4]
+  wire [31:0] wb_inter_connect_io_imem_io_wdata; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_imem_io_wr_en; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_imem_io_cs; // @[processor_tile.scala 53:32:@12750.4]
+  wire [7:0] wb_inter_connect_io_dmem_io_addr; // @[processor_tile.scala 53:32:@12750.4]
+  wire [31:0] wb_inter_connect_io_dmem_io_wdata; // @[processor_tile.scala 53:32:@12750.4]
+  wire [31:0] wb_inter_connect_io_dmem_io_rdata; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_dmem_io_cs; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_dmem_io_wr_en; // @[processor_tile.scala 53:32:@12750.4]
+  wire [3:0] wb_inter_connect_io_dmem_io_st_type; // @[processor_tile.scala 53:32:@12750.4]
+  wire [15:0] wb_inter_connect_io_wbm_m2s_addr; // @[processor_tile.scala 53:32:@12750.4]
+  wire [31:0] wb_inter_connect_io_wbm_m2s_data; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_wbm_m2s_we; // @[processor_tile.scala 53:32:@12750.4]
+  wire [3:0] wb_inter_connect_io_wbm_m2s_sel; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_wbm_m2s_stb; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_uart_tx; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_uart_rx; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_uart_irq; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_spi_cs; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_spi_clk; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_spi_mosi; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_spi_miso; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_spi_irq; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_motor_ack_i; // @[processor_tile.scala 53:32:@12750.4]
+  wire [31:0] wb_inter_connect_io_motor_data_i; // @[processor_tile.scala 53:32:@12750.4]
+  wire  wb_inter_connect_io_motor_addr_sel; // @[processor_tile.scala 53:32:@12750.4]
+  wire  motor_clock; // @[processor_tile.scala 55:32:@12753.4]
+  wire  motor_reset; // @[processor_tile.scala 55:32:@12753.4]
+  wire [15:0] motor_io_wbs_m2s_addr; // @[processor_tile.scala 55:32:@12753.4]
+  wire [31:0] motor_io_wbs_m2s_data; // @[processor_tile.scala 55:32:@12753.4]
+  wire  motor_io_wbs_m2s_we; // @[processor_tile.scala 55:32:@12753.4]
+  wire [3:0] motor_io_wbs_m2s_sel; // @[processor_tile.scala 55:32:@12753.4]
+  wire  motor_io_wbs_m2s_stb; // @[processor_tile.scala 55:32:@12753.4]
+  wire  motor_io_wbs_ack_o; // @[processor_tile.scala 55:32:@12753.4]
+  wire [31:0] motor_io_wbs_data_o; // @[processor_tile.scala 55:32:@12753.4]
+  wire  motor_io_ba_match; // @[processor_tile.scala 55:32:@12753.4]
+  wire  motor_io_motor_irq; // @[processor_tile.scala 55:32:@12753.4]
+  wire  motor_io_qei_ch_a; // @[processor_tile.scala 55:32:@12753.4]
+  wire  motor_io_qei_ch_b; // @[processor_tile.scala 55:32:@12753.4]
+  wire  motor_io_pwm_high; // @[processor_tile.scala 55:32:@12753.4]
+  wire  motor_io_pwm_low; // @[processor_tile.scala 55:32:@12753.4]
+  wire  imem_clock; // @[processor_tile.scala 56:32:@12756.4]
+  wire [8:0] imem_io_addr; // @[processor_tile.scala 56:32:@12756.4]
+  wire [31:0] imem_io_rdata; // @[processor_tile.scala 56:32:@12756.4]
+  wire [31:0] imem_io_wdata; // @[processor_tile.scala 56:32:@12756.4]
+  wire  imem_io_wr_en; // @[processor_tile.scala 56:32:@12756.4]
+  wire  imem_io_cs; // @[processor_tile.scala 56:32:@12756.4]
+  wire  dmem_clock; // @[processor_tile.scala 57:32:@12759.4]
+  wire [7:0] dmem_io_addr; // @[processor_tile.scala 57:32:@12759.4]
+  wire [31:0] dmem_io_wdata; // @[processor_tile.scala 57:32:@12759.4]
+  wire [31:0] dmem_io_rdata; // @[processor_tile.scala 57:32:@12759.4]
+  wire  dmem_io_cs; // @[processor_tile.scala 57:32:@12759.4]
+  wire  dmem_io_wr_en; // @[processor_tile.scala 57:32:@12759.4]
+  wire [3:0] dmem_io_st_type; // @[processor_tile.scala 57:32:@12759.4]
+  Core core ( // @[processor_tile.scala 52:32:@12747.4]
+    .clock(core_clock),
+    .reset(core_reset),
+    .io_irq_uart_irq(core_io_irq_uart_irq),
+    .io_irq_spi_irq(core_io_irq_spi_irq),
+    .io_irq_motor_irq(core_io_irq_motor_irq),
+    .io_ibus_addr(core_io_ibus_addr),
+    .io_ibus_inst(core_io_ibus_inst),
+    .io_ibus_valid(core_io_ibus_valid),
+    .io_dbus_addr(core_io_dbus_addr),
+    .io_dbus_wdata(core_io_dbus_wdata),
+    .io_dbus_rdata(core_io_dbus_rdata),
+    .io_dbus_rd_en(core_io_dbus_rd_en),
+    .io_dbus_wr_en(core_io_dbus_wr_en),
+    .io_dbus_st_type(core_io_dbus_st_type),
+    .io_dbus_ld_type(core_io_dbus_ld_type),
+    .io_dbus_valid(core_io_dbus_valid)
+  );
+  WB_InterConnect wb_inter_connect ( // @[processor_tile.scala 53:32:@12750.4]
+    .clock(wb_inter_connect_clock),
+    .reset(wb_inter_connect_reset),
+    .io_dbus_addr(wb_inter_connect_io_dbus_addr),
+    .io_dbus_wdata(wb_inter_connect_io_dbus_wdata),
+    .io_dbus_rdata(wb_inter_connect_io_dbus_rdata),
+    .io_dbus_rd_en(wb_inter_connect_io_dbus_rd_en),
+    .io_dbus_wr_en(wb_inter_connect_io_dbus_wr_en),
+    .io_dbus_st_type(wb_inter_connect_io_dbus_st_type),
+    .io_dbus_ld_type(wb_inter_connect_io_dbus_ld_type),
+    .io_dbus_valid(wb_inter_connect_io_dbus_valid),
+    .io_ibus_addr(wb_inter_connect_io_ibus_addr),
+    .io_ibus_inst(wb_inter_connect_io_ibus_inst),
+    .io_ibus_valid(wb_inter_connect_io_ibus_valid),
+    .io_imem_io_addr(wb_inter_connect_io_imem_io_addr),
+    .io_imem_io_rdata(wb_inter_connect_io_imem_io_rdata),
+    .io_imem_io_wdata(wb_inter_connect_io_imem_io_wdata),
+    .io_imem_io_wr_en(wb_inter_connect_io_imem_io_wr_en),
+    .io_imem_io_cs(wb_inter_connect_io_imem_io_cs),
+    .io_dmem_io_addr(wb_inter_connect_io_dmem_io_addr),
+    .io_dmem_io_wdata(wb_inter_connect_io_dmem_io_wdata),
+    .io_dmem_io_rdata(wb_inter_connect_io_dmem_io_rdata),
+    .io_dmem_io_cs(wb_inter_connect_io_dmem_io_cs),
+    .io_dmem_io_wr_en(wb_inter_connect_io_dmem_io_wr_en),
+    .io_dmem_io_st_type(wb_inter_connect_io_dmem_io_st_type),
+    .io_wbm_m2s_addr(wb_inter_connect_io_wbm_m2s_addr),
+    .io_wbm_m2s_data(wb_inter_connect_io_wbm_m2s_data),
+    .io_wbm_m2s_we(wb_inter_connect_io_wbm_m2s_we),
+    .io_wbm_m2s_sel(wb_inter_connect_io_wbm_m2s_sel),
+    .io_wbm_m2s_stb(wb_inter_connect_io_wbm_m2s_stb),
+    .io_uart_tx(wb_inter_connect_io_uart_tx),
+    .io_uart_rx(wb_inter_connect_io_uart_rx),
+    .io_uart_irq(wb_inter_connect_io_uart_irq),
+    .io_spi_cs(wb_inter_connect_io_spi_cs),
+    .io_spi_clk(wb_inter_connect_io_spi_clk),
+    .io_spi_mosi(wb_inter_connect_io_spi_mosi),
+    .io_spi_miso(wb_inter_connect_io_spi_miso),
+    .io_spi_irq(wb_inter_connect_io_spi_irq),
+    .io_motor_ack_i(wb_inter_connect_io_motor_ack_i),
+    .io_motor_data_i(wb_inter_connect_io_motor_data_i),
+    .io_motor_addr_sel(wb_inter_connect_io_motor_addr_sel)
+  );
+  Motor_Top motor ( // @[processor_tile.scala 55:32:@12753.4]
+    .clock(motor_clock),
+    .reset(motor_reset),
+    .io_wbs_m2s_addr(motor_io_wbs_m2s_addr),
+    .io_wbs_m2s_data(motor_io_wbs_m2s_data),
+    .io_wbs_m2s_we(motor_io_wbs_m2s_we),
+    .io_wbs_m2s_sel(motor_io_wbs_m2s_sel),
+    .io_wbs_m2s_stb(motor_io_wbs_m2s_stb),
+    .io_wbs_ack_o(motor_io_wbs_ack_o),
+    .io_wbs_data_o(motor_io_wbs_data_o),
+    .io_ba_match(motor_io_ba_match),
+    .io_motor_irq(motor_io_motor_irq),
+    .io_qei_ch_a(motor_io_qei_ch_a),
+    .io_qei_ch_b(motor_io_qei_ch_b),
+    .io_pwm_high(motor_io_pwm_high),
+    .io_pwm_low(motor_io_pwm_low)
+  );
+  IMem imem ( // @[processor_tile.scala 56:32:@12756.4]
+    .clock(imem_clock),
+    .io_addr(imem_io_addr),
+    .io_rdata(imem_io_rdata),
+    .io_wdata(imem_io_wdata),
+    .io_wr_en(imem_io_wr_en),
+    .io_cs(imem_io_cs)
+  );
+  DMem dmem ( // @[processor_tile.scala 57:32:@12759.4]
+    .clock(dmem_clock),
+    .io_addr(dmem_io_addr),
+    .io_wdata(dmem_io_wdata),
+    .io_rdata(dmem_io_rdata),
+    .io_cs(dmem_io_cs),
+    .io_wr_en(dmem_io_wr_en),
+    .io_st_type(dmem_io_st_type)
+  );
+  assign io_uart_tx = wb_inter_connect_io_uart_tx; // @[processor_tile.scala 69:32:@12791.4]
+  assign io_spi_cs = wb_inter_connect_io_spi_cs; // @[processor_tile.scala 74:32:@12794.4]
+  assign io_spi_clk = wb_inter_connect_io_spi_clk; // @[processor_tile.scala 75:32:@12795.4]
+  assign io_spi_mosi = wb_inter_connect_io_spi_mosi; // @[processor_tile.scala 76:32:@12796.4]
+  assign io_pwm_high = motor_io_pwm_high; // @[processor_tile.scala 95:24:@12810.4]
+  assign io_pwm_low = motor_io_pwm_low; // @[processor_tile.scala 96:24:@12811.4]
+  assign core_clock = clock; // @[:@12748.4]
+  assign core_reset = reset; // @[:@12749.4]
+  assign core_io_irq_uart_irq = wb_inter_connect_io_uart_irq; // @[processor_tile.scala 71:32:@12793.4]
+  assign core_io_irq_spi_irq = wb_inter_connect_io_spi_irq; // @[processor_tile.scala 78:32:@12798.4]
+  assign core_io_irq_motor_irq = motor_io_motor_irq; // @[processor_tile.scala 97:25:@12812.4]
+  assign core_io_ibus_inst = wb_inter_connect_io_ibus_inst; // @[processor_tile.scala 65:24:@12781.4]
+  assign core_io_ibus_valid = wb_inter_connect_io_ibus_valid; // @[processor_tile.scala 65:24:@12780.4]
+  assign core_io_dbus_rdata = wb_inter_connect_io_dbus_rdata; // @[processor_tile.scala 66:24:@12788.4]
+  assign core_io_dbus_valid = wb_inter_connect_io_dbus_valid; // @[processor_tile.scala 66:24:@12783.4]
+  assign wb_inter_connect_clock = clock; // @[:@12751.4]
+  assign wb_inter_connect_reset = reset; // @[:@12752.4]
+  assign wb_inter_connect_io_dbus_addr = core_io_dbus_addr; // @[processor_tile.scala 66:24:@12790.4]
+  assign wb_inter_connect_io_dbus_wdata = core_io_dbus_wdata; // @[processor_tile.scala 66:24:@12789.4]
+  assign wb_inter_connect_io_dbus_rd_en = core_io_dbus_rd_en; // @[processor_tile.scala 66:24:@12787.4]
+  assign wb_inter_connect_io_dbus_wr_en = core_io_dbus_wr_en; // @[processor_tile.scala 66:24:@12786.4]
+  assign wb_inter_connect_io_dbus_st_type = core_io_dbus_st_type; // @[processor_tile.scala 66:24:@12785.4]
+  assign wb_inter_connect_io_dbus_ld_type = core_io_dbus_ld_type; // @[processor_tile.scala 66:24:@12784.4]
+  assign wb_inter_connect_io_ibus_addr = core_io_ibus_addr; // @[processor_tile.scala 65:24:@12782.4]
+  assign wb_inter_connect_io_imem_io_rdata = imem_io_rdata; // @[processor_tile.scala 60:11:@12769.4]
+  assign wb_inter_connect_io_dmem_io_rdata = dmem_io_rdata; // @[processor_tile.scala 61:11:@12777.4]
+  assign wb_inter_connect_io_uart_rx = io_uart_rx; // @[processor_tile.scala 70:32:@12792.4]
+  assign wb_inter_connect_io_spi_miso = io_spi_miso; // @[processor_tile.scala 77:32:@12797.4]
+  assign wb_inter_connect_io_motor_ack_i = motor_io_wbs_ack_o; // @[processor_tile.scala 90:35:@12806.4]
+  assign wb_inter_connect_io_motor_data_i = motor_io_wbs_data_o; // @[processor_tile.scala 89:36:@12805.4]
+  assign motor_clock = clock; // @[:@12754.4]
+  assign motor_reset = reset; // @[:@12755.4]
+  assign motor_io_wbs_m2s_addr = wb_inter_connect_io_wbm_m2s_addr; // @[processor_tile.scala 88:28:@12804.4]
+  assign motor_io_wbs_m2s_data = wb_inter_connect_io_wbm_m2s_data; // @[processor_tile.scala 88:28:@12803.4]
+  assign motor_io_wbs_m2s_we = wb_inter_connect_io_wbm_m2s_we; // @[processor_tile.scala 88:28:@12802.4]
+  assign motor_io_wbs_m2s_sel = wb_inter_connect_io_wbm_m2s_sel; // @[processor_tile.scala 88:28:@12801.4]
+  assign motor_io_wbs_m2s_stb = wb_inter_connect_io_wbm_m2s_stb; // @[processor_tile.scala 88:28:@12800.4]
+  assign motor_io_ba_match = wb_inter_connect_io_motor_addr_sel; // @[processor_tile.scala 92:24:@12807.4]
+  assign motor_io_qei_ch_a = io_qei_ch_a; // @[processor_tile.scala 93:24:@12808.4]
+  assign motor_io_qei_ch_b = io_qei_ch_b; // @[processor_tile.scala 94:24:@12809.4]
+  assign imem_clock = clock; // @[:@12757.4]
+  assign imem_io_addr = wb_inter_connect_io_imem_io_addr; // @[processor_tile.scala 60:11:@12770.4]
+  assign imem_io_wdata = wb_inter_connect_io_imem_io_wdata; // @[processor_tile.scala 60:11:@12768.4]
+  assign imem_io_wr_en = wb_inter_connect_io_imem_io_wr_en; // @[processor_tile.scala 60:11:@12767.4]
+  assign imem_io_cs = wb_inter_connect_io_imem_io_cs; // @[processor_tile.scala 60:11:@12766.4]
+  assign dmem_clock = clock; // @[:@12760.4]
+  assign dmem_io_addr = wb_inter_connect_io_dmem_io_addr; // @[processor_tile.scala 61:11:@12779.4]
+  assign dmem_io_wdata = wb_inter_connect_io_dmem_io_wdata; // @[processor_tile.scala 61:11:@12778.4]
+  assign dmem_io_cs = wb_inter_connect_io_dmem_io_cs; // @[processor_tile.scala 61:11:@12776.4]
+  assign dmem_io_wr_en = wb_inter_connect_io_dmem_io_wr_en; // @[processor_tile.scala 61:11:@12775.4]
+  assign dmem_io_st_type = wb_inter_connect_io_dmem_io_st_type; // @[processor_tile.scala 61:11:@12774.4]
+endmodule
