diff --git a/verilog/gl/user_project_wrapper.v b/verilog/gl/user_project_wrapper.v
index ecae883..8ae108f 100644
--- a/verilog/gl/user_project_wrapper.v
+++ b/verilog/gl/user_project_wrapper.v
@@ -53,8 +53,279 @@
  output [31:0] wbs_dat_o;
  input [3:0] wbs_sel_i;
 
+ wire \adr_cpu[0] ;
+ wire \adr_cpu[10] ;
+ wire \adr_cpu[11] ;
+ wire \adr_cpu[1] ;
+ wire \adr_cpu[2] ;
+ wire \adr_cpu[3] ;
+ wire \adr_cpu[4] ;
+ wire \adr_cpu[5] ;
+ wire \adr_cpu[6] ;
+ wire \adr_cpu[7] ;
+ wire \adr_cpu[8] ;
+ wire \adr_cpu[9] ;
+ wire \adr_mem[0] ;
+ wire \adr_mem[1] ;
+ wire \adr_mem[2] ;
+ wire \adr_mem[3] ;
+ wire \adr_mem[4] ;
+ wire \adr_mem[5] ;
+ wire \adr_mem[6] ;
+ wire \adr_mem[7] ;
+ wire \adr_mem[8] ;
+ wire \adr_mem[9] ;
+ wire clk;
+ wire \cpdatin[0] ;
+ wire \cpdatin[10] ;
+ wire \cpdatin[11] ;
+ wire \cpdatin[12] ;
+ wire \cpdatin[13] ;
+ wire \cpdatin[14] ;
+ wire \cpdatin[15] ;
+ wire \cpdatin[1] ;
+ wire \cpdatin[2] ;
+ wire \cpdatin[3] ;
+ wire \cpdatin[4] ;
+ wire \cpdatin[5] ;
+ wire \cpdatin[6] ;
+ wire \cpdatin[7] ;
+ wire \cpdatin[8] ;
+ wire \cpdatin[9] ;
+ wire \cpdatout[0] ;
+ wire \cpdatout[10] ;
+ wire \cpdatout[11] ;
+ wire \cpdatout[12] ;
+ wire \cpdatout[13] ;
+ wire \cpdatout[14] ;
+ wire \cpdatout[15] ;
+ wire \cpdatout[1] ;
+ wire \cpdatout[2] ;
+ wire \cpdatout[3] ;
+ wire \cpdatout[4] ;
+ wire \cpdatout[5] ;
+ wire \cpdatout[6] ;
+ wire \cpdatout[7] ;
+ wire \cpdatout[8] ;
+ wire \cpdatout[9] ;
+ wire cpuen;
+ wire cpurw;
+ wire endisp;
+ wire enkbd;
+ wire \memdatin[0] ;
+ wire \memdatin[10] ;
+ wire \memdatin[11] ;
+ wire \memdatin[12] ;
+ wire \memdatin[13] ;
+ wire \memdatin[14] ;
+ wire \memdatin[15] ;
+ wire \memdatin[1] ;
+ wire \memdatin[2] ;
+ wire \memdatin[3] ;
+ wire \memdatin[4] ;
+ wire \memdatin[5] ;
+ wire \memdatin[6] ;
+ wire \memdatin[7] ;
+ wire \memdatin[8] ;
+ wire \memdatin[9] ;
+ wire \memdatout[0] ;
+ wire \memdatout[10] ;
+ wire \memdatout[11] ;
+ wire \memdatout[12] ;
+ wire \memdatout[13] ;
+ wire \memdatout[14] ;
+ wire \memdatout[15] ;
+ wire \memdatout[1] ;
+ wire \memdatout[2] ;
+ wire \memdatout[3] ;
+ wire \memdatout[4] ;
+ wire \memdatout[5] ;
+ wire \memdatout[6] ;
+ wire \memdatout[7] ;
+ wire \memdatout[8] ;
+ wire \memdatout[9] ;
+ wire memen;
+ wire memrw;
+ wire rst;
 
- user_proj_example mprj (.vccd1(vccd1),
+ cpu cpu0 (.clk(clk),
+    .en(cpuen),
+    .en_inp(enkbd),
+    .en_out(endisp),
+    .rdwr(cpurw),
+    .rst(rst),
+    .vccd1(vccd1),
+    .vssd1(vssd1),
+    .addr({\adr_cpu[11] ,
+    \adr_cpu[10] ,
+    \adr_cpu[9] ,
+    \adr_cpu[8] ,
+    \adr_cpu[7] ,
+    \adr_cpu[6] ,
+    \adr_cpu[5] ,
+    \adr_cpu[4] ,
+    \adr_cpu[3] ,
+    \adr_cpu[2] ,
+    \adr_cpu[1] ,
+    \adr_cpu[0] }),
+    .datain({\cpdatin[15] ,
+    \cpdatin[14] ,
+    \cpdatin[13] ,
+    \cpdatin[12] ,
+    \cpdatin[11] ,
+    \cpdatin[10] ,
+    \cpdatin[9] ,
+    \cpdatin[8] ,
+    \cpdatin[7] ,
+    \cpdatin[6] ,
+    \cpdatin[5] ,
+    \cpdatin[4] ,
+    \cpdatin[3] ,
+    \cpdatin[2] ,
+    \cpdatin[1] ,
+    \cpdatin[0] }),
+    .dataout({\cpdatout[15] ,
+    \cpdatout[14] ,
+    \cpdatout[13] ,
+    \cpdatout[12] ,
+    \cpdatout[11] ,
+    \cpdatout[10] ,
+    \cpdatout[9] ,
+    \cpdatout[8] ,
+    \cpdatout[7] ,
+    \cpdatout[6] ,
+    \cpdatout[5] ,
+    \cpdatout[4] ,
+    \cpdatout[3] ,
+    \cpdatout[2] ,
+    \cpdatout[1] ,
+    \cpdatout[0] }),
+    .display({io_out[29],
+    io_out[28],
+    io_out[27],
+    io_out[26],
+    io_out[25],
+    io_out[24],
+    io_out[23],
+    io_out[22]}),
+    .keyboard({io_in[37],
+    io_in[36],
+    io_in[35],
+    io_in[34],
+    io_in[33],
+    io_in[32],
+    io_in[31],
+    io_in[30]}));
+ sky130_sram_1kbyte_1rw1r_8x1024_8 memHword (.csb0(memen),
+    .web0(memrw),
+    .clk0(clk),
+    .vccd1(vccd1),
+    .vssd1(vssd1),
+    .addr0({\adr_mem[9] ,
+    \adr_mem[8] ,
+    \adr_mem[7] ,
+    \adr_mem[6] ,
+    \adr_mem[5] ,
+    \adr_mem[4] ,
+    \adr_mem[3] ,
+    \adr_mem[2] ,
+    \adr_mem[1] ,
+    \adr_mem[0] }),
+    .addr1({_NC1,
+    _NC2,
+    _NC3,
+    _NC4,
+    _NC5,
+    _NC6,
+    _NC7,
+    _NC8,
+    _NC9,
+    _NC10}),
+    .din0({\memdatout[15] ,
+    \memdatout[14] ,
+    \memdatout[13] ,
+    \memdatout[12] ,
+    \memdatout[11] ,
+    \memdatout[10] ,
+    \memdatout[9] ,
+    \memdatout[8] }),
+    .dout0({\memdatin[15] ,
+    \memdatin[14] ,
+    \memdatin[13] ,
+    \memdatin[12] ,
+    \memdatin[11] ,
+    \memdatin[10] ,
+    \memdatin[9] ,
+    \memdatin[8] }),
+    .dout1({_NC11,
+    _NC12,
+    _NC13,
+    _NC14,
+    _NC15,
+    _NC16,
+    _NC17,
+    _NC18}),
+    .wmask0({_NC19}));
+ sky130_sram_1kbyte_1rw1r_8x1024_8 memLword (.csb0(memen),
+    .web0(memrw),
+    .clk0(clk),
+    .vccd1(vccd1),
+    .vssd1(vssd1),
+    .addr0({\adr_mem[9] ,
+    \adr_mem[8] ,
+    \adr_mem[7] ,
+    \adr_mem[6] ,
+    \adr_mem[5] ,
+    \adr_mem[4] ,
+    \adr_mem[3] ,
+    \adr_mem[2] ,
+    \adr_mem[1] ,
+    \adr_mem[0] }),
+    .addr1({_NC20,
+    _NC21,
+    _NC22,
+    _NC23,
+    _NC24,
+    _NC25,
+    _NC26,
+    _NC27,
+    _NC28,
+    _NC29}),
+    .din0({\memdatout[7] ,
+    \memdatout[6] ,
+    \memdatout[5] ,
+    \memdatout[4] ,
+    \memdatout[3] ,
+    \memdatout[2] ,
+    \memdatout[1] ,
+    \memdatout[0] }),
+    .dout0({\memdatin[7] ,
+    \memdatin[6] ,
+    \memdatin[5] ,
+    \memdatin[4] ,
+    \memdatin[3] ,
+    \memdatin[2] ,
+    \memdatin[1] ,
+    \memdatin[0] }),
+    .dout1({_NC30,
+    _NC31,
+    _NC32,
+    _NC33,
+    _NC34,
+    _NC35,
+    _NC36,
+    _NC37}),
+    .wmask0({_NC38}));
+ soc_config mprj (.en_display(endisp),
+    .en_from_cpu(cpuen),
+    .en_keyboard(enkbd),
+    .en_to_mem(memen),
+    .rw_from_cpu(cpurw),
+    .rw_to_mem(memrw),
+    .soc_clk(clk),
+    .soc_rst(rst),
+    .user_clock2(user_clock2),
+    .vccd1(vccd1),
     .vssd1(vssd1),
     .wb_clk_i(wb_clk_i),
     .wb_rst_i(wb_rst_i),
@@ -62,6 +333,92 @@
     .wbs_cyc_i(wbs_cyc_i),
     .wbs_stb_i(wbs_stb_i),
     .wbs_we_i(wbs_we_i),
+    .addr_from_cpu({\adr_cpu[11] ,
+    \adr_cpu[10] ,
+    \adr_cpu[9] ,
+    \adr_cpu[8] ,
+    \adr_cpu[7] ,
+    \adr_cpu[6] ,
+    \adr_cpu[5] ,
+    \adr_cpu[4] ,
+    \adr_cpu[3] ,
+    \adr_cpu[2] ,
+    \adr_cpu[1] ,
+    \adr_cpu[0] }),
+    .addr_to_mem({\adr_mem[9] ,
+    \adr_mem[8] ,
+    \adr_mem[7] ,
+    \adr_mem[6] ,
+    \adr_mem[5] ,
+    \adr_mem[4] ,
+    \adr_mem[3] ,
+    \adr_mem[2] ,
+    \adr_mem[1] ,
+    \adr_mem[0] }),
+    .data_from_cpu({\cpdatout[15] ,
+    \cpdatout[14] ,
+    \cpdatout[13] ,
+    \cpdatout[12] ,
+    \cpdatout[11] ,
+    \cpdatout[10] ,
+    \cpdatout[9] ,
+    \cpdatout[8] ,
+    \cpdatout[7] ,
+    \cpdatout[6] ,
+    \cpdatout[5] ,
+    \cpdatout[4] ,
+    \cpdatout[3] ,
+    \cpdatout[2] ,
+    \cpdatout[1] ,
+    \cpdatout[0] }),
+    .data_from_mem({\memdatin[15] ,
+    \memdatin[14] ,
+    \memdatin[13] ,
+    \memdatin[12] ,
+    \memdatin[11] ,
+    \memdatin[10] ,
+    \memdatin[9] ,
+    \memdatin[8] ,
+    \memdatin[7] ,
+    \memdatin[6] ,
+    \memdatin[5] ,
+    \memdatin[4] ,
+    \memdatin[3] ,
+    \memdatin[2] ,
+    \memdatin[1] ,
+    \memdatin[0] }),
+    .data_to_cpu({\cpdatin[15] ,
+    \cpdatin[14] ,
+    \cpdatin[13] ,
+    \cpdatin[12] ,
+    \cpdatin[11] ,
+    \cpdatin[10] ,
+    \cpdatin[9] ,
+    \cpdatin[8] ,
+    \cpdatin[7] ,
+    \cpdatin[6] ,
+    \cpdatin[5] ,
+    \cpdatin[4] ,
+    \cpdatin[3] ,
+    \cpdatin[2] ,
+    \cpdatin[1] ,
+    \cpdatin[0] }),
+    .data_to_mem({\memdatout[15] ,
+    \memdatout[14] ,
+    \memdatout[13] ,
+    \memdatout[12] ,
+    \memdatout[11] ,
+    \memdatout[10] ,
+    \memdatout[9] ,
+    \memdatout[8] ,
+    \memdatout[7] ,
+    \memdatout[6] ,
+    \memdatout[5] ,
+    \memdatout[4] ,
+    \memdatout[3] ,
+    \memdatout[2] ,
+    \memdatout[1] ,
+    \memdatout[0] }),
     .io_in({io_in[37],
     io_in[36],
     io_in[35],
