wb_host rtl and openlane setup added
diff --git a/openlane/wb_host/config.tcl b/openlane/wb_host/config.tcl
new file mode 100755
index 0000000..dcf2828
--- /dev/null
+++ b/openlane/wb_host/config.tcl
@@ -0,0 +1,58 @@
+# Global
+# ------
+
+set script_dir [file dirname [file normalize [info script]]]
+# Name
+
+set ::env(DESIGN_NAME) wb_host
+
+# Timing configuration
+set ::env(CLOCK_PERIOD) "10"
+set ::env(CLOCK_PORT) "wbm_clk_i wbs_clk_i"
+
+set ::env(SYNTH_MAX_FANOUT) 4
+
+# Sources
+# -------
+
+# Local sources + no2usb sources
+set ::env(VERILOG_FILES) "\
+     $script_dir/../../verilog/rtl/wb_host/src/wb_host.sv \
+     $script_dir/../../verilog/rtl/lib/async_fifo.sv \
+     $script_dir/../../verilog/rtl/lib/async_wb.sv \
+     $script_dir/../../verilog/rtl/lib/registers.v"
+
+#set ::env(SDC_FILE) "$script_dir/base.sdc"
+#set ::env(BASE_SDC_FILE) "$script_dir/base.sdc"
+
+set ::env(LEC_ENABLE) 0
+
+set ::env(VDD_PIN) [list {vccd1}]
+set ::env(GND_PIN) [list {vssd1}]
+
+
+# Floorplanning
+# -------------
+
+set ::env(FP_PIN_ORDER_CFG) $::env(DESIGN_DIR)/pin_order.cfg
+
+set ::env(FP_SIZING) absolute
+set ::env(DIE_AREA) "0 0 1000 200"
+
+
+
+set ::env(FP_PDN_VPITCH) 50
+#set ::env(PDN_CFG) $script_dir/pdn.tcl
+
+#set ::env(FP_VERTICAL_HALO) 6
+set ::env(PL_TARGET_DENSITY) 0.62
+set ::env(PL_TARGET_DENSITY_CELLS) 0.5
+set ::env(PL_OPENPHYSYN_OPTIMIZATIONS) 1
+#set ::env(CELL_PAD) 4
+
+set ::env(GLB_RT_TILES) 14
+set ::env(GLB_RT_MAXLAYER) 5
+
+set ::env(DIODE_INSERTION_STRATEGY) 4
+
+
diff --git a/openlane/wb_host/pin_order.cfg b/openlane/wb_host/pin_order.cfg
new file mode 100644
index 0000000..dca5594
--- /dev/null
+++ b/openlane/wb_host/pin_order.cfg
@@ -0,0 +1,684 @@
+#BUS_SORT
+
+#MANUAL_PLACE
+
+#E
+wbs_clk_i     0000 0 2   
+
+
+
+
+#S
+wbm_clk_i       0000 0  2
+wbm_rst_i        
+wbm_ack_o       
+wbm_cyc_i        
+wbm_stb_i        
+wbm_we_i         
+wbm_adr_i\[0\]  
+wbm_dat_i\[0\]  
+wbm_dat_o\[0\]  
+wbm_sel_i\[0\]  
+wbm_adr_i\[1\]  
+wbm_dat_i\[1\]  
+wbm_dat_o\[1\]  
+wbm_sel_i\[1\]  
+wbm_adr_i\[2\]  
+wbm_dat_i\[2\]  
+wbm_dat_o\[2\]  
+wbm_sel_i\[2\]  
+wbm_adr_i\[3\]  
+wbm_dat_i\[3\]  
+wbm_dat_o\[3\]  
+wbm_sel_i\[3\]  
+wbm_adr_i\[4\]  
+wbm_dat_i\[4\]  
+wbm_dat_o\[4\]  
+wbm_adr_i\[5\]  
+wbm_dat_i\[5\]  
+wbm_dat_o\[5\]  
+wbm_adr_i\[6\]  
+wbm_dat_i\[6\]  
+wbm_dat_o\[6\]  
+wbm_adr_i\[7\]  
+wbm_dat_i\[7\]  
+wbm_dat_o\[7\]  
+wbm_adr_i\[8\]  
+wbm_dat_i\[8\]  
+wbm_dat_o\[8\]  
+wbm_adr_i\[9\]  
+wbm_dat_i\[9\]  
+wbm_dat_o\[9\]  
+wbm_adr_i\[10\]  
+wbm_dat_i\[10\]  
+wbm_dat_o\[10\]  
+wbm_adr_i\[11\]  
+wbm_dat_i\[11\]  
+wbm_dat_o\[11\]  
+wbm_adr_i\[12\]  
+wbm_dat_i\[12\]  
+wbm_dat_o\[12\]  
+wbm_adr_i\[13\]  
+wbm_dat_i\[13\]  
+wbm_dat_o\[13\]  
+wbm_adr_i\[14\]  
+wbm_dat_i\[14\]  
+wbm_dat_o\[14\]  
+wbm_adr_i\[15\]  
+wbm_dat_i\[15\]  
+wbm_dat_o\[15\]  
+wbm_adr_i\[16\]  
+wbm_dat_i\[16\]  
+wbm_dat_o\[16\]  
+wbm_adr_i\[17\]  
+wbm_dat_i\[17\]  
+wbm_dat_o\[17\]  
+wbm_adr_i\[18\]  
+wbm_dat_i\[18\]  
+wbm_dat_o\[18\]  
+wbm_adr_i\[19\]  
+wbm_dat_i\[19\]  
+wbm_dat_o\[19\]  
+wbm_adr_i\[20\]  
+wbm_dat_i\[20\]  
+wbm_dat_o\[20\]  
+wbm_adr_i\[21\]  
+wbm_dat_i\[21\]  
+wbm_dat_o\[21\]  
+wbm_adr_i\[22\]  
+wbm_dat_i\[22\]  
+wbm_dat_o\[22\]  
+wbm_adr_i\[23\]  
+wbm_dat_i\[23\]  
+wbm_dat_o\[23\]  
+wbm_adr_i\[24\]  
+wbm_dat_i\[24\]  
+wbm_dat_o\[24\]  
+wbm_adr_i\[25\]  
+wbm_dat_i\[25\]  
+wbm_dat_o\[25\]  
+wbm_adr_i\[26\]  
+wbm_dat_i\[26\]  
+wbm_dat_o\[26\]  
+wbm_adr_i\[27\]  
+wbm_dat_i\[27\]  
+wbm_dat_o\[27\]  
+wbm_adr_i\[28\]  
+wbm_dat_i\[28\]  
+wbm_dat_o\[28\]  
+wbm_adr_i\[29\]  
+wbm_dat_i\[29\]  
+wbm_dat_o\[29\]  
+wbm_adr_i\[30\]  
+wbm_dat_i\[30\]  
+wbm_dat_o\[30\]  
+wbm_adr_i\[31\]  
+wbm_dat_i\[31\]  
+wbm_dat_o\[31\]  
+wbm_err_o        
+
+la_data_in\[0\]    500 0  2
+la_data_out\[0\]
+la_oenb\[0\]
+la_data_in\[1\]
+la_data_out\[1\]
+la_oenb\[1\]
+la_data_in\[2\]
+la_data_out\[2\]
+la_oenb\[2\]
+la_data_in\[3\]
+la_data_out\[3\]
+la_oenb\[3\]
+la_data_in\[4\]
+la_data_out\[4\]
+la_oenb\[4\]
+la_data_in\[5\]
+la_data_out\[5\]
+la_oenb\[5\]
+la_data_in\[6\]
+la_data_out\[6\]
+la_oenb\[6\]
+la_data_in\[7\]
+la_data_out\[7\]
+la_oenb\[7\]
+la_data_in\[8\]
+la_data_out\[8\]
+la_oenb\[8\]
+la_data_in\[9\]
+la_data_out\[9\]
+la_oenb\[9\]
+la_data_in\[10\]
+la_data_out\[10\]
+la_oenb\[10\]
+la_data_in\[11\]
+la_data_out\[11\]
+la_oenb\[11\]
+la_data_in\[12\]
+la_data_out\[12\]
+la_oenb\[12\]
+la_data_in\[13\]
+la_data_out\[13\]
+la_oenb\[13\]
+la_data_in\[14\]
+la_data_out\[14\]
+la_oenb\[14\]
+la_data_in\[15\]
+la_data_out\[15\]
+la_oenb\[15\]
+la_data_in\[16\]
+la_data_out\[16\]
+la_oenb\[16\]
+la_data_in\[17\]
+la_data_out\[17\]
+la_oenb\[17\]
+la_data_in\[18\]
+la_data_out\[18\]
+la_oenb\[18\]
+la_data_in\[19\]
+la_data_out\[19\]
+la_oenb\[19\]
+la_data_in\[20\]
+la_data_out\[20\]
+la_oenb\[20\]
+la_data_in\[21\]
+la_data_out\[21\]
+la_oenb\[21\]
+la_data_in\[22\]
+la_data_out\[22\]
+la_oenb\[22\]
+la_data_in\[23\]
+la_data_out\[23\]
+la_oenb\[23\]
+la_data_in\[24\]
+la_data_out\[24\]
+la_oenb\[24\]
+la_data_in\[25\]
+la_data_out\[25\]
+la_oenb\[25\]
+la_data_in\[26\]
+la_data_out\[26\]
+la_oenb\[26\]
+la_data_in\[27\]
+la_data_out\[27\]
+la_oenb\[27\]
+la_data_in\[28\]
+la_data_out\[28\]
+la_oenb\[28\]
+la_data_in\[29\]
+la_data_out\[29\]
+la_oenb\[29\]
+la_data_in\[30\]
+la_data_out\[30\]
+la_oenb\[30\]
+la_data_in\[31\]
+la_data_out\[31\]
+la_oenb\[31\]
+la_data_in\[32\]
+la_data_out\[32\]
+la_oenb\[32\]
+la_data_in\[33\]
+la_data_out\[33\]
+la_oenb\[33\]
+la_data_in\[34\]
+la_data_out\[34\]
+la_oenb\[34\]
+la_data_in\[35\]
+la_data_out\[35\]
+la_oenb\[35\]
+la_data_in\[36\]
+la_data_out\[36\]
+la_oenb\[36\]
+la_data_in\[37\]
+la_data_out\[37\]
+la_oenb\[37\]
+la_data_in\[38\]
+la_data_out\[38\]
+la_oenb\[38\]
+la_data_in\[39\]
+la_data_out\[39\]
+la_oenb\[39\]
+la_data_in\[40\]
+la_data_out\[40\]
+la_oenb\[40\]
+la_data_in\[41\]
+la_data_out\[41\]
+la_oenb\[41\]
+la_data_in\[42\]
+la_data_out\[42\]
+la_oenb\[42\]
+la_data_in\[43\]
+la_data_out\[43\]
+la_oenb\[43\]
+la_data_in\[44\]
+la_data_out\[44\]
+la_oenb\[44\]
+la_data_in\[45\]
+la_data_out\[45\]
+la_oenb\[45\]
+la_data_in\[46\]
+la_data_out\[46\]
+la_oenb\[46\]
+la_data_in\[47\]
+la_data_out\[47\]
+la_oenb\[47\]
+la_data_in\[48\]
+la_data_out\[48\]
+la_oenb\[48\]
+la_data_in\[49\]
+la_data_out\[49\]
+la_oenb\[49\]
+la_data_in\[50\]
+la_data_out\[50\]
+la_oenb\[50\]
+la_data_in\[51\]
+la_data_out\[51\]
+la_oenb\[51\]
+la_data_in\[52\]
+la_data_out\[52\]
+la_oenb\[52\]
+la_data_in\[53\]
+la_data_out\[53\]
+la_oenb\[53\]
+la_data_in\[54\]
+la_data_out\[54\]
+la_oenb\[54\]
+la_data_in\[55\]
+la_data_out\[55\]
+la_oenb\[55\]
+la_data_in\[56\]
+la_data_out\[56\]
+la_oenb\[56\]
+la_data_in\[57\]
+la_data_out\[57\]
+la_oenb\[57\]
+la_data_in\[58\]
+la_data_out\[58\]
+la_oenb\[58\]
+la_data_in\[59\]
+la_data_out\[59\]
+la_oenb\[59\]
+la_data_in\[60\]
+la_data_out\[60\]
+la_oenb\[60\]
+la_data_in\[61\]
+la_data_out\[61\]
+la_oenb\[61\]
+la_data_in\[62\]
+la_data_out\[62\]
+la_oenb\[62\]
+la_data_in\[63\]
+la_data_out\[63\]
+la_oenb\[63\]
+la_data_in\[64\]
+la_data_out\[64\]
+la_oenb\[64\]
+la_data_in\[65\]
+la_data_out\[65\]
+la_oenb\[65\]
+la_data_in\[66\]
+la_data_out\[66\]
+la_oenb\[66\]
+la_data_in\[67\]
+la_data_out\[67\]
+la_oenb\[67\]
+la_data_in\[68\]
+la_data_out\[68\]
+la_oenb\[68\]
+la_data_in\[69\]
+la_data_out\[69\]
+la_oenb\[69\]
+la_data_in\[70\]
+la_data_out\[70\]
+la_oenb\[70\]
+la_data_in\[71\]
+la_data_out\[71\]
+la_oenb\[71\]
+la_data_in\[72\]
+la_data_out\[72\]
+la_oenb\[72\]
+la_data_in\[73\]
+la_data_out\[73\]
+la_oenb\[73\]
+la_data_in\[74\]
+la_data_out\[74\]
+la_oenb\[74\]
+la_data_in\[75\]
+la_data_out\[75\]
+la_oenb\[75\]
+la_data_in\[76\]
+la_data_out\[76\]
+la_oenb\[76\]
+la_data_in\[77\]
+la_data_out\[77\]
+la_oenb\[77\]
+la_data_in\[78\]
+la_data_out\[78\]
+la_oenb\[78\]
+la_data_in\[79\]
+la_data_out\[79\]
+la_oenb\[79\]
+la_data_in\[80\]
+la_data_out\[80\]
+la_oenb\[80\]
+la_data_in\[81\]
+la_data_out\[81\]
+la_oenb\[81\]
+la_data_in\[82\]
+la_data_out\[82\]
+la_oenb\[82\]
+la_data_in\[83\]
+la_data_out\[83\]
+la_oenb\[83\]
+la_data_in\[84\]
+la_data_out\[84\]
+la_oenb\[84\]
+la_data_in\[85\]
+la_data_out\[85\]
+la_oenb\[85\]
+la_data_in\[86\]
+la_data_out\[86\]
+la_oenb\[86\]
+la_data_in\[87\]
+la_data_out\[87\]
+la_oenb\[87\]
+la_data_in\[88\]
+la_data_out\[88\]
+la_oenb\[88\]
+la_data_in\[89\]
+la_data_out\[89\]
+la_oenb\[89\]
+la_data_in\[90\]
+la_data_out\[90\]
+la_oenb\[90\]
+la_data_in\[91\]
+la_data_out\[91\]
+la_oenb\[91\]
+la_data_in\[92\]
+la_data_out\[92\]
+la_oenb\[92\]
+la_data_in\[93\]
+la_data_out\[93\]
+la_oenb\[93\]
+la_data_in\[94\]
+la_data_out\[94\]
+la_oenb\[94\]
+la_data_in\[95\]
+la_data_out\[95\]
+la_oenb\[95\]
+la_data_in\[96\]
+la_data_out\[96\]
+la_oenb\[96\]
+la_data_in\[97\]
+la_data_out\[97\]
+la_oenb\[97\]
+la_data_in\[98\]
+la_data_out\[98\]
+la_oenb\[98\]
+la_data_in\[99\]
+la_data_out\[99\]
+la_oenb\[99\]
+la_data_in\[100\]
+la_data_out\[100\]
+la_oenb\[100\]
+la_data_in\[101\]
+la_data_out\[101\]
+la_oenb\[101\]
+la_data_in\[102\]
+la_data_out\[102\]
+la_oenb\[102\]
+la_data_in\[103\]
+la_data_out\[103\]
+la_oenb\[103\]
+la_data_in\[104\]
+la_data_out\[104\]
+la_oenb\[104\]
+la_data_in\[105\]
+la_data_out\[105\]
+la_oenb\[105\]
+la_data_in\[106\]
+la_data_out\[106\]
+la_oenb\[106\]
+la_data_in\[107\]
+la_data_out\[107\]
+la_oenb\[107\]
+la_data_in\[108\]
+la_data_out\[108\]
+la_oenb\[108\]
+la_data_in\[109\]
+la_data_out\[109\]
+la_oenb\[109\]
+la_data_in\[110\]
+la_data_out\[110\]
+la_oenb\[110\]
+la_data_in\[111\]
+la_data_out\[111\]
+la_oenb\[111\]
+la_data_in\[112\]
+la_data_out\[112\]
+la_oenb\[112\]
+la_data_in\[113\]
+la_data_out\[113\]
+la_oenb\[113\]
+la_data_in\[114\]
+la_data_out\[114\]
+la_oenb\[114\]
+la_data_in\[115\]
+la_data_out\[115\]
+la_oenb\[115\]
+la_data_in\[116\]
+la_data_out\[116\]
+la_oenb\[116\]
+la_data_in\[117\]
+la_data_out\[117\]
+la_oenb\[117\]
+la_data_in\[118\]
+la_data_out\[118\]
+la_oenb\[118\]
+la_data_in\[119\]
+la_data_out\[119\]
+la_oenb\[119\]
+la_data_in\[120\]
+la_data_out\[120\]
+la_oenb\[120\]
+la_data_in\[121\]
+la_data_out\[121\]
+la_oenb\[121\]
+la_data_in\[122\]
+la_data_out\[122\]
+la_oenb\[122\]
+la_data_in\[123\]
+la_data_out\[123\]
+la_oenb\[123\]
+la_data_in\[124\]
+la_data_out\[124\]
+la_oenb\[124\]
+la_data_in\[125\]
+la_data_out\[125\]
+la_oenb\[125\]
+la_data_in\[126\]
+la_data_out\[126\]
+la_oenb\[126\]
+la_data_in\[127\]
+la_data_out\[127\]
+la_oenb\[127\]
+
+#N
+wbs_stb_o        0000 0 2
+wbs_we_o         
+wbs_adr_o\[31\]  
+wbs_adr_o\[30\]  
+wbs_adr_o\[29\]  
+wbs_adr_o\[28\]  
+wbs_adr_o\[27\]  
+wbs_adr_o\[26\]  
+wbs_adr_o\[25\]  
+wbs_adr_o\[24\]  
+wbs_adr_o\[23\]  
+wbs_adr_o\[22\]  
+wbs_adr_o\[21\]  
+wbs_adr_o\[20\]  
+wbs_adr_o\[19\]  
+wbs_adr_o\[18\]  
+wbs_adr_o\[17\]  
+wbs_adr_o\[16\]  
+wbs_adr_o\[15\]  
+wbs_adr_o\[14\]  
+wbs_adr_o\[13\]  
+wbs_adr_o\[12\]  
+wbs_adr_o\[11\]  
+wbs_adr_o\[10\]  
+wbs_adr_o\[9\]   
+wbs_adr_o\[8\]   
+wbs_adr_o\[7\]   
+wbs_adr_o\[6\]   
+wbs_adr_o\[5\]   
+wbs_adr_o\[4\]   
+wbs_adr_o\[3\]   
+wbs_adr_o\[2\]   
+wbs_adr_o\[1\]   
+wbs_adr_o\[0\]   
+wbs_sel_o\[3\]   
+wbs_sel_o\[2\]   
+wbs_sel_o\[1\]   
+wbs_sel_o\[0\]   
+wbs_dat_o\[31\]  
+wbs_dat_o\[30\]  
+wbs_dat_o\[29\]  
+wbs_dat_o\[28\]  
+wbs_dat_o\[27\]  
+wbs_dat_o\[26\]  
+wbs_dat_o\[25\]  
+wbs_dat_o\[24\]  
+wbs_dat_o\[23\]  
+wbs_dat_o\[22\]  
+wbs_dat_o\[21\]  
+wbs_dat_o\[20\]  
+wbs_dat_o\[19\]  
+wbs_dat_o\[18\]  
+wbs_dat_o\[17\]  
+wbs_dat_o\[16\]  
+wbs_dat_o\[15\]  
+wbs_dat_o\[14\]  
+wbs_dat_o\[13\]  
+wbs_dat_o\[12\]  
+wbs_dat_o\[11\]  
+wbs_dat_o\[10\]  
+wbs_dat_o\[9\]   
+wbs_dat_o\[8\]   
+wbs_dat_o\[7\]   
+wbs_dat_o\[6\]   
+wbs_dat_o\[5\]   
+wbs_dat_o\[4\]   
+wbs_dat_o\[3\]   
+wbs_dat_o\[2\]   
+wbs_dat_o\[1\]   
+wbs_dat_o\[0\]   
+wbs_dat_i\[31\]  
+wbs_dat_i\[30\]  
+wbs_dat_i\[29\]  
+wbs_dat_i\[28\]  
+wbs_dat_i\[27\]  
+wbs_dat_i\[26\]  
+wbs_dat_i\[25\]  
+wbs_dat_i\[24\]  
+wbs_dat_i\[23\]  
+wbs_dat_i\[22\]  
+wbs_dat_i\[21\]  
+wbs_dat_i\[20\]  
+wbs_dat_i\[19\]  
+wbs_dat_i\[18\]  
+wbs_dat_i\[17\]  
+wbs_dat_i\[16\]  
+wbs_dat_i\[15\]  
+wbs_dat_i\[14\]  
+wbs_dat_i\[13\]  
+wbs_dat_i\[12\]  
+wbs_dat_i\[11\]  
+wbs_dat_i\[10\]  
+wbs_dat_i\[9\]   
+wbs_dat_i\[8\]   
+wbs_dat_i\[7\]   
+wbs_dat_i\[6\]   
+wbs_dat_i\[5\]   
+wbs_dat_i\[4\]   
+wbs_dat_i\[3\]   
+wbs_dat_i\[2\]   
+wbs_dat_i\[1\]   
+wbs_dat_i\[0\]   
+wbs_ack_i        
+wbs_err_i        
+wbs_cyc_o      
+
+cfg_glb_ctrl\[7\]
+cfg_glb_ctrl\[6\]
+cfg_glb_ctrl\[5\]
+cfg_glb_ctrl\[4\]
+cfg_glb_ctrl\[3\]
+cfg_glb_ctrl\[2\]
+cfg_glb_ctrl\[1\]
+cfg_glb_ctrl\[0\]
+cfg_clk_ctrl1\[31\]
+cfg_clk_ctrl1\[30\]
+cfg_clk_ctrl1\[29\]
+cfg_clk_ctrl1\[28\]
+cfg_clk_ctrl1\[27\]
+cfg_clk_ctrl1\[26\]
+cfg_clk_ctrl1\[25\]
+cfg_clk_ctrl1\[24\]
+cfg_clk_ctrl1\[23\]
+cfg_clk_ctrl1\[22\]
+cfg_clk_ctrl1\[21\]
+cfg_clk_ctrl1\[20\]
+cfg_clk_ctrl1\[19\]
+cfg_clk_ctrl1\[18\]
+cfg_clk_ctrl1\[17\]
+cfg_clk_ctrl1\[16\]
+cfg_clk_ctrl1\[15\]
+cfg_clk_ctrl1\[14\]
+cfg_clk_ctrl1\[13\]
+cfg_clk_ctrl1\[12\]
+cfg_clk_ctrl1\[11\]
+cfg_clk_ctrl1\[10\]
+cfg_clk_ctrl1\[9\]
+cfg_clk_ctrl1\[8\]
+cfg_clk_ctrl1\[7\]
+cfg_clk_ctrl1\[6\]
+cfg_clk_ctrl1\[5\]
+cfg_clk_ctrl1\[4\]
+cfg_clk_ctrl1\[3\]
+cfg_clk_ctrl1\[2\]
+cfg_clk_ctrl1\[1\]
+cfg_clk_ctrl1\[0\]
+cfg_clk_ctrl2\[31\]
+cfg_clk_ctrl2\[30\]
+cfg_clk_ctrl2\[29\]
+cfg_clk_ctrl2\[28\]
+cfg_clk_ctrl2\[27\]
+cfg_clk_ctrl2\[26\]
+cfg_clk_ctrl2\[25\]
+cfg_clk_ctrl2\[24\]
+cfg_clk_ctrl2\[23\]
+cfg_clk_ctrl2\[22\]
+cfg_clk_ctrl2\[21\]
+cfg_clk_ctrl2\[20\]
+cfg_clk_ctrl2\[19\]
+cfg_clk_ctrl2\[18\]
+cfg_clk_ctrl2\[17\]
+cfg_clk_ctrl2\[16\]
+cfg_clk_ctrl2\[15\]
+cfg_clk_ctrl2\[14\]
+cfg_clk_ctrl2\[13\]
+cfg_clk_ctrl2\[12\]
+cfg_clk_ctrl2\[11\]
+cfg_clk_ctrl2\[10\]
+cfg_clk_ctrl2\[9\]
+cfg_clk_ctrl2\[8\]
+cfg_clk_ctrl2\[7\]
+cfg_clk_ctrl2\[6\]
+cfg_clk_ctrl2\[5\]
+cfg_clk_ctrl2\[4\]
+cfg_clk_ctrl2\[3\]
+cfg_clk_ctrl2\[2\]
+cfg_clk_ctrl2\[1\]
+cfg_clk_ctrl2\[0\]
+  
diff --git a/signoff/wb_host/OPENLANE_VERSION b/signoff/wb_host/OPENLANE_VERSION
new file mode 100644
index 0000000..a2633b1
--- /dev/null
+++ b/signoff/wb_host/OPENLANE_VERSION
@@ -0,0 +1 @@
+openlane rc7
diff --git a/signoff/wb_host/PDK_SOURCES b/signoff/wb_host/PDK_SOURCES
new file mode 100644
index 0000000..8b58bd5
--- /dev/null
+++ b/signoff/wb_host/PDK_SOURCES
@@ -0,0 +1,6 @@
+-ne openlane 
+a68c95289612a361870acedb7f6478fcfae32e49
+-ne skywater-pdk 
+f6f76f3dc99526c6fc2cfede19b5b1227d4ebde7
+-ne open_pdks 
+522a373441a865fee9d6e3783015b4445f11afe6
diff --git a/signoff/wb_host/final_summary_report.csv b/signoff/wb_host/final_summary_report.csv
new file mode 100644
index 0000000..1116b1b
--- /dev/null
+++ b/signoff/wb_host/final_summary_report.csv
@@ -0,0 +1,2 @@
+,design,design_name,config,flow_status,total_runtime,routed_runtime,(Cell/mm^2)/Core_Util,DIEAREA_mm^2,CellPer_mm^2,OpenDP_Util,Peak_Memory_Usage_MB,cell_count,tritonRoute_violations,Short_violations,MetSpc_violations,OffGrid_violations,MinHole_violations,Other_violations,Magic_violations,antenna_violations,lvs_total_errors,cvc_total_errors,klayout_violations,wire_length,vias,wns,pl_wns,optimized_wns,fastroute_wns,spef_wns,tns,pl_tns,optimized_tns,fastroute_tns,spef_tns,HPWL,routing_layer1_pct,routing_layer2_pct,routing_layer3_pct,routing_layer4_pct,routing_layer5_pct,routing_layer6_pct,wires_count,wire_bits,public_wires_count,public_wire_bits,memories_count,memory_bits,processes_count,cells_pre_abc,AND,DFF,NAND,NOR,OR,XOR,XNOR,MUX,inputs,outputs,level,EndCaps,TapCells,Diodes,Total_Physical_Cells,suggested_clock_frequency,suggested_clock_period,CLOCK_PERIOD,SYNTH_STRATEGY,SYNTH_MAX_FANOUT,FP_CORE_UTIL,FP_ASPECT_RATIO,FP_PDN_VPITCH,FP_PDN_HPITCH,PL_TARGET_DENSITY,GLB_RT_ADJUSTMENT,STD_CELL_LIBRARY,CELL_PAD,DIODE_INSERTION_STRATEGY
+0,/project/openlane/wb_host,wb_host,wb_host,Flow_completed,0h6m30s,0h3m47s,35490.0,0.2,17745.0,28,592.36,3549,0,0,0,0,0,0,0,3,0,0,0,315592,33452,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,261952954,0.0,48.32,13.08,26.98,0.0,-1,3270,3912,529,1171,0,0,0,3549,85,0,5,9,30,27,13,915,660,813,16,130,2343,0,2473,100.0,10.0,10,AREA 0,4,50,1,50,153.18,0.62,0,sky130_fd_sc_hd,4,4
diff --git a/verilog/rtl/lib/async_wb.sv b/verilog/rtl/lib/async_wb.sv
new file mode 100644
index 0000000..48bce58
--- /dev/null
+++ b/verilog/rtl/lib/async_wb.sv
@@ -0,0 +1,188 @@
+//////////////////////////////////////////////////////////////////////
+////                                                              ////
+////  Async Wishbone Interface                                    ////
+////                                                              ////
+////  This file is part of the YIFive cores project               ////
+////  http://www.opencores.org/cores/yifive/                      ////
+////                                                              ////
+////  Description                                                 ////
+////      This block does async Wishbone from one clock to other  ////
+////      clock domain
+////                                                              ////
+////  To Do:                                                      ////
+////    nothing                                                   ////
+////                                                              ////
+////  Author(s):                                                  ////
+////      - Dinesh Annayya, dinesha@opencores.org                 ////
+////                                                              ////
+////  Revision :                                                  ////
+////    0.1 - 25th Feb 2021, Dinesh A                             ////
+////          initial version                                     ////
+//////////////////////////////////////////////////////////////////////
+////                                                              ////
+//// Copyright (C) 2000 Authors and OPENCORES.ORG                 ////
+////                                                              ////
+//// This source file may be used and distributed without         ////
+//// restriction provided that this copyright statement is not    ////
+//// removed from the file and that any derivative work contains  ////
+//// the original copyright notice and the associated disclaimer. ////
+////                                                              ////
+//// This source file is free software; you can redistribute it   ////
+//// and/or modify it under the terms of the GNU Lesser General   ////
+//// Public License as published by the Free Software Foundation; ////
+//// either version 2.1 of the License, or (at your option) any   ////
+//// later version.                                               ////
+////                                                              ////
+//// This source is distributed in the hope that it will be       ////
+//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
+//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
+//// PURPOSE.  See the GNU Lesser General Public License for more ////
+//// details.                                                     ////
+////                                                              ////
+//// You should have received a copy of the GNU Lesser General    ////
+//// Public License along with this source; if not, download it   ////
+//// from http://www.opencores.org/lgpl.shtml                     ////
+////                                                              ////
+//////////////////////////////////////////////////////////////////////
+
+module async_wb (
+
+    // Master Port
+       input   logic               wbm_rst_n   ,  // Regular Reset signal
+       input   logic               wbm_clk_i   ,  // System clock
+       input   logic               wbm_cyc_i   ,  // strobe/request
+       input   logic               wbm_stb_i   ,  // strobe/request
+       input   logic [31:0]        wbm_adr_i   ,  // address
+       input   logic               wbm_we_i    ,  // write
+       input   logic [31:0]        wbm_dat_i   ,  // data output
+       input   logic [3:0]         wbm_sel_i   ,  // byte enable
+       output  logic [31:0]        wbm_dat_o   ,  // data input
+       output  logic               wbm_ack_o   ,  // acknowlegement
+       output  logic               wbm_err_o   ,  // error
+
+    // Slave Port
+       input   logic               wbs_rst_n   ,  // Regular Reset signal
+       input   logic               wbs_clk_i   ,  // System clock
+       output  logic               wbs_cyc_o   ,  // strobe/request
+       output  logic               wbs_stb_o   ,  // strobe/request
+       output  logic [31:0]        wbs_adr_o   ,  // address
+       output  logic               wbs_we_o    ,  // write
+       output  logic [31:0]        wbs_dat_o   ,  // data output
+       output  logic [3:0]         wbs_sel_o   ,  // byte enable
+       input   logic [31:0]        wbs_dat_i   ,  // data input
+       input   logic               wbs_ack_i   ,  // acknowlegement
+       input   logic               wbs_err_i      // error
+
+    );
+
+
+
+
+//-------------------------------------------------
+//  Master Interface
+// -------------------------------------------------
+logic        PendingRd     ; // Pending Read Transaction
+logic        m_cmd_wr_en       ;
+logic [70:0] m_cmd_wr_data     ;
+logic        m_cmd_wr_full     ;
+logic        m_cmd_wr_afull    ;
+
+logic        m_resp_rd_empty    ;
+logic        m_resp_rd_aempty   ;
+logic        m_resp_rd_en       ;
+logic [32:0] m_resp_rd_data     ;
+
+// Master Write Interface
+
+
+assign m_cmd_wr_en = (!PendingRd) && wbm_stb_i && !m_cmd_wr_full && !m_cmd_wr_afull;
+
+assign m_cmd_wr_data = {wbm_cyc_i,wbm_stb_i,wbm_adr_i,wbm_we_i,wbm_dat_i,wbm_sel_i};
+
+always@(negedge wbm_rst_n or posedge wbm_clk_i)
+begin
+   if(wbm_rst_n == 0) begin
+      PendingRd <= 1'b0;
+   end else begin
+      if((!PendingRd) && wbm_stb_i && (!wbm_we_i)) begin
+      PendingRd <= 1'b1;
+      end else if(PendingRd && wbm_stb_i && (!wbm_we_i) && wbm_ack_o) begin
+         PendingRd <= 1'b0;
+      end
+   end
+end
+
+
+// Master Read Interface
+// For Write is feed through, if there is space in fifo the ack
+// For Read, Wait for Response Path FIFO status
+assign wbm_ack_o = (wbm_stb_i && wbm_we_i)    ?  m_cmd_wr_en : // Write Logic
+	           (wbm_stb_i && (!wbm_we_i)) ? !m_resp_rd_empty : 1'b0; // Read Logic
+
+assign m_resp_rd_en   = !m_resp_rd_empty;
+assign wbm_dat_o      = m_resp_rd_data[31:0];
+assign wbm_err_o      = m_resp_rd_data[32];
+
+
+//------------------------------
+// Slave Interface
+//-------------------------------
+
+logic [70:0] s_cmd_rd_data      ;
+logic        s_cmd_rd_empty     ;
+logic        s_cmd_rd_aempty    ;
+logic        s_cmd_rd_en        ;
+logic        s_resp_wr_en        ;
+logic [32:0] s_resp_wr_data      ;
+logic        s_resp_wr_full      ;
+logic        s_resp_wr_afull     ;
+
+
+// Read Interface
+assign {wbs_cyc_o,wbs_stb_o,wbs_adr_o,wbs_we_o,wbs_dat_o,wbs_sel_o} = (s_cmd_rd_empty) ? '0:  s_cmd_rd_data;
+assign s_cmd_rd_en = wbs_ack_i;
+
+// Write Interface
+// response send only for read logic
+assign s_resp_wr_en   = wbs_stb_o & (!wbs_we_o) & wbs_ack_i & !s_resp_wr_full;
+assign s_resp_wr_data = {wbs_err_i,wbs_dat_i};
+
+async_fifo #(.W(71), .DP(4), .WR_FAST(1), .RD_FAST(1)) u_cmd_if (
+	           // Sync w.r.t WR clock
+	           .wr_clk        (wbm_clk_i         ),
+                   .wr_reset_n    (wbm_rst_n         ),
+                   .wr_en         (m_cmd_wr_en       ),
+                   .wr_data       (m_cmd_wr_data     ),
+                   .full          (m_cmd_wr_full     ),                 
+                   .afull         (m_cmd_wr_afull    ),                 
+
+		   // Sync w.r.t RD Clock
+                   .rd_clk        (wbs_clk_i         ),
+                   .rd_reset_n    (wbs_rst_n         ),
+                   .rd_en         (s_cmd_rd_en       ),
+                   .empty         (s_cmd_rd_empty    ), // sync'ed to rd_clk
+                   .aempty        (s_cmd_rd_aempty   ), // sync'ed to rd_clk
+                   .rd_data       (s_cmd_rd_data     )
+	     );
+
+async_fifo #(.W(33), .DP(4), .WR_FAST(1), .RD_FAST(1)) u_resp_if (
+	           // Sync w.r.t WR clock
+	           .wr_clk        (wbs_clk_i          ),
+                   .wr_reset_n    (wbs_rst_n          ),
+                   .wr_en         (s_resp_wr_en       ),
+                   .wr_data       (s_resp_wr_data     ),
+                   .full          (s_resp_wr_full     ),                 
+                   .afull         (s_resp_wr_afull    ),                 
+
+		   // Sync w.r.t RD Clock
+                   .rd_clk        (wbm_clk_i          ),
+                   .rd_reset_n    (wbm_rst_n          ),
+                   .rd_en         (m_resp_rd_en       ),
+                   .empty         (m_resp_rd_empty    ), // sync'ed to rd_clk
+                   .aempty        (m_resp_rd_aempty   ), // sync'ed to rd_clk
+                   .rd_data       (m_resp_rd_data     )
+	     );
+
+
+
+endmodule
diff --git a/verilog/rtl/wb_host/src/wb_host.sv b/verilog/rtl/wb_host/src/wb_host.sv
new file mode 100644
index 0000000..c642421
--- /dev/null
+++ b/verilog/rtl/wb_host/src/wb_host.sv
@@ -0,0 +1,268 @@
+//////////////////////////////////////////////////////////////////////
+////                                                              ////
+////  Wishbone host Interface                                     ////
+////                                                              ////
+////  This file is part of the YIFive cores project               ////
+////  http://www.opencores.org/cores/yifive/                      ////
+////                                                              ////
+////  Description                                                 ////
+////      This block does async Wishbone from one clock to other  ////
+////      clock domain                                            ////
+////                                                              ////
+////  To Do:                                                      ////
+////    nothing                                                   ////
+////                                                              ////
+////  Author(s):                                                  ////
+////      - Dinesh Annayya, dinesha@opencores.org                 ////
+////                                                              ////
+////  Revision :                                                  ////
+////    0.1 - 25th Feb 2021, Dinesh A                             ////
+////          initial version                                     ////
+//////////////////////////////////////////////////////////////////////
+////                                                              ////
+//// Copyright (C) 2000 Authors and OPENCORES.ORG                 ////
+////                                                              ////
+//// This source file may be used and distributed without         ////
+//// restriction provided that this copyright statement is not    ////
+//// removed from the file and that any derivative work contains  ////
+//// the original copyright notice and the associated disclaimer. ////
+////                                                              ////
+//// This source file is free software; you can redistribute it   ////
+//// and/or modify it under the terms of the GNU Lesser General   ////
+//// Public License as published by the Free Software Foundation; ////
+//// either version 2.1 of the License, or (at your option) any   ////
+//// later version.                                               ////
+////                                                              ////
+//// This source is distributed in the hope that it will be       ////
+//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
+//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
+//// PURPOSE.  See the GNU Lesser General Public License for more ////
+//// details.                                                     ////
+////                                                              ////
+//// You should have received a copy of the GNU Lesser General    ////
+//// Public License along with this source; if not, download it   ////
+//// from http://www.opencores.org/lgpl.shtml                     ////
+////                                                              ////
+//////////////////////////////////////////////////////////////////////
+
+module wb_host (
+
+`ifdef USE_POWER_PINS
+    inout vccd1,	// User area 1 1.8V supply
+    inout vssd1,	// User area 1 digital ground
+`endif
+
+    // Master Port
+       input   logic               wbm_rst_i        ,  // Regular Reset signal
+       input   logic               wbm_clk_i        ,  // System clock
+       input   logic               wbm_cyc_i        ,  // strobe/request
+       input   logic               wbm_stb_i        ,  // strobe/request
+       input   logic [31:0]        wbm_adr_i        ,  // address
+       input   logic               wbm_we_i         ,  // write
+       input   logic [31:0]        wbm_dat_i        ,  // data output
+       input   logic [3:0]         wbm_sel_i        ,  // byte enable
+       output  logic [31:0]        wbm_dat_o        ,  // data input
+       output  logic               wbm_ack_o        ,  // acknowlegement
+       output  logic               wbm_err_o        ,  // error
+
+    // Slave Port
+       output  logic               wbs_clk_i        ,  // System clock
+       output  logic               wbs_cyc_o        ,  // strobe/request
+       output  logic               wbs_stb_o        ,  // strobe/request
+       output  logic [31:0]        wbs_adr_o        ,  // address
+       output  logic               wbs_we_o         ,  // write
+       output  logic [31:0]        wbs_dat_o        ,  // data output
+       output  logic [3:0]         wbs_sel_o        ,  // byte enable
+       input   logic [31:0]        wbs_dat_i        ,  // data input
+       input   logic               wbs_ack_i        ,  // acknowlegement
+       input   logic               wbs_err_i        ,  // error
+
+       output logic [7:0]          cfg_glb_ctrl     ,
+       output logic [31:0]         cfg_clk_ctrl1    ,
+       output logic [31:0]         cfg_clk_ctrl2    ,
+
+    // Logic Analyzer Signals
+       input  logic [127:0]        la_data_in       ,
+       output logic [127:0]        la_data_out      ,
+       input  logic [127:0]        la_oenb         
+    );
+
+
+//--------------------------------
+// local  dec
+//
+//--------------------------------
+logic               wbm_rst_n;
+logic               wbs_rst_n;
+logic [31:0]        wbm_dat_int; // data input
+logic               wbm_ack_int; // acknowlegement
+logic               wbm_err_int; // error
+
+logic               reg_sel    ;
+logic [1:0]         sw_addr    ;
+logic               sw_rd_en   ;
+logic               sw_wr_en   ;
+logic [31:0]        reg_rdata  ;
+logic [31:0]        reg_out    ;
+logic               reg_ack    ;
+logic [7:0]         config_reg ;    
+logic [31:0]        clk_ctrl1 ;    
+logic [31:0]        clk_ctrl2 ;    
+logic               sw_wr_en_0;
+logic               sw_wr_en_1;
+logic               sw_wr_en_2;
+logic               sw_wr_en_3;
+logic [7:0]         cfg_bank_sel;
+logic [31:0]        wbm_adr_int;
+logic               wbm_stb_int;
+
+
+assign wbm_rst_n = !wbm_rst_i;
+assign wbs_rst_n = !wbm_rst_i;
+
+assign wbs_clk_i =  wbm_clk_i;
+
+assign  wbm_dat_o   = (reg_sel) ? reg_rdata : wbm_dat_int;  // data input
+assign  wbm_ack_o   = (reg_sel) ? reg_ack   : wbm_ack_int; // acknowlegement
+assign  wbm_err_o   = (reg_sel) ? 1'b0      : wbm_err_int;  // error
+
+//-----------------------------------------------------------------------
+// Local register decide based on address[31] == 1
+//
+// Locally there register are define to control the reset and clock for user
+// area
+//-----------------------------------------------------------------------
+// caravel user space is 0x3000_0000 to 0x30FF_FFFF
+// So we have allocated 
+// 0x3080_0000 - 0x3080_00FF - Assigned to WB Host Address Space
+// Since We need more than 16MB Address space to access SDRAM/SPI we have
+// added indirect MSB 8 bit address select option
+// So Address will be {Bank_Sel[7:0], wbm_adr_i[23:0}
+// ---------------------------------------------------------------------
+assign reg_sel       = wbm_stb_i & (wbm_adr_i[23] == 1'b1);
+
+assign sw_addr       = wbm_adr_i [3:2];
+assign sw_rd_en      = reg_sel & !wbm_we_i;
+assign sw_wr_en      = reg_sel & wbm_we_i;
+
+assign  sw_wr_en_0 = sw_wr_en && (sw_addr==0);
+assign  sw_wr_en_1 = sw_wr_en && (sw_addr==1);
+assign  sw_wr_en_2 = sw_wr_en && (sw_addr==2);
+assign  sw_wr_en_3 = sw_wr_en && (sw_addr==3);
+
+always @ (posedge wbm_clk_i or negedge wbm_rst_n)
+begin : preg_out_Seq
+   if (wbm_rst_n == 1'b0)
+   begin
+      reg_rdata  <= 'h0;
+      reg_ack    <= 1'b0;
+   end
+   else if (sw_rd_en && !reg_ack) 
+   begin
+      reg_rdata <= reg_out ;
+      reg_ack   <= 1'b1;
+   end
+   else if (sw_wr_en && !reg_ack) 
+      reg_ack          <= 1'b1;
+   else
+   begin
+      reg_ack        <= 1'b0;
+   end
+end
+
+always @( *)
+begin 
+  reg_out [31:0] = 8'd0;
+
+  case (sw_addr [1:0])
+    2'b00 :   reg_out [31:0] = {24'h0,cfg_glb_ctrl [7:0]};     
+    2'b01 :   reg_out [31:0] = {24'h0,cfg_bank_sel [7:0]};     
+    2'b10 :   reg_out [31:0] = cfg_clk_ctrl1 [31:0];    
+    2'b11 :   reg_out [31:0] = cfg_clk_ctrl2 [31:0];     
+    default : reg_out [31:0] = 'h0;
+  endcase
+end
+
+
+
+generic_register #(8,0  ) u_glb_ctrl (
+	      .we            ({8{sw_wr_en_0}}   ),		 
+	      .data_in       (wbm_dat_i[7:0]    ),
+	      .reset_n       (wbm_rst_n         ),
+	      .clk           (wbm_clk_i         ),
+	      
+	      //List of Outs
+	      .data_out      (cfg_glb_ctrl[7:0] )
+          );
+
+generic_register #(8,8'h30 ) u_bank_sel (
+	      .we            ({8{sw_wr_en_1}}   ),		 
+	      .data_in       (wbm_dat_i[7:0]    ),
+	      .reset_n       (wbm_rst_n         ),
+	      .clk           (wbm_clk_i         ),
+	      
+	      //List of Outs
+	      .data_out      (cfg_bank_sel[7:0] )
+          );
+
+
+generic_register #(32,0  ) u_clk_ctrl1 (
+	      .we            ({32{sw_wr_en_2}}   ),		 
+	      .data_in       (wbm_dat_i[31:0]    ),
+	      .reset_n       (wbm_rst_n          ),
+	      .clk           (wbm_clk_i          ),
+	      
+	      //List of Outs
+	      .data_out      (cfg_clk_ctrl1[31:0])
+          );
+
+generic_register #(32,0  ) u_clk_ctrl2 (
+	      .we            ({32{sw_wr_en_3}}  ),		 
+	      .data_in       (wbm_dat_i[31:0]   ),
+	      .reset_n       (wbm_rst_n         ),
+	      .clk           (wbm_clk_i         ),
+	      
+	      //List of Outs
+	      .data_out      (cfg_clk_ctrl2[31:0])
+          );
+
+
+assign wbm_stb_int = wbm_stb_i & !reg_sel;
+
+// Since design need more than 16MB address space, we have implemented
+// indirect access
+assign wbm_adr_int = {cfg_bank_sel[7:0],wbm_adr_i[23:0]};  
+
+async_wb u_async_wb(
+// Master Port
+       .wbm_rst_n   (wbm_rst_n     ),  
+       .wbm_clk_i   (wbm_clk_i     ),  
+       .wbm_cyc_i   (wbm_cyc_i     ),  
+       .wbm_stb_i   (wbm_stb_int   ),  
+       .wbm_adr_i   (wbm_adr_int   ),  
+       .wbm_we_i    (wbm_we_i      ),  
+       .wbm_dat_i   (wbm_dat_i     ),  
+       .wbm_sel_i   (wbm_sel_i     ),  
+       .wbm_dat_o   (wbm_dat_int   ),  
+       .wbm_ack_o   (wbm_ack_int   ),  
+       .wbm_err_o   (wbm_err_int   ),  
+
+// Slave Port
+       .wbs_rst_n   (wbs_rst_n     ),  
+       .wbs_clk_i   (wbs_clk_i     ),  
+       .wbs_cyc_o   (wbs_cyc_o     ),  
+       .wbs_stb_o   (wbs_stb_o     ),  
+       .wbs_adr_o   (wbs_adr_o     ),  
+       .wbs_we_o    (wbs_we_o      ),  
+       .wbs_dat_o   (wbs_dat_o     ),  
+       .wbs_sel_o   (wbs_sel_o     ),  
+       .wbs_dat_i   (wbs_dat_i     ),  
+       .wbs_ack_i   (wbs_ack_i     ),  
+       .wbs_err_i   (wbs_err_i     )
+
+    );
+
+
+
+
+endmodule