diff --git a/verilog/dv/jacaranda_test/Makefile b/verilog/dv/jacaranda_test/Makefile
index cd42435..5c9e648 100644
--- a/verilog/dv/jacaranda_test/Makefile
+++ b/verilog/dv/jacaranda_test/Makefile
@@ -42,7 +42,7 @@
 
 PATTERN = jacaranda_test
 
-all:  ${PATTERN:=.vcd}
+all:  ${PATTERN:=.fst}
 
 hex:  ${PATTERN:=.hex}
 
@@ -59,7 +59,7 @@
 	$< -o $@ 
 endif
 
-%.vcd: %.vvp
+%.fst: %.vvp
 	vvp $<
 
 %.elf: %.c $(CARAVEL_FIRMWARE_PATH)/sections.lds $(CARAVEL_FIRMWARE_PATH)/start.s check-env
@@ -91,6 +91,6 @@
 # ---- Clean ----
 
 clean:
-	rm -f *.elf *.hex *.bin *.vvp *.vcd *.log
+	rm -f *.elf *.hex *.bin *.vvp *.fst *.log
 
 .PHONY: clean hex all
diff --git a/verilog/dv/jacaranda_test/jacaranda_test.c b/verilog/dv/jacaranda_test/jacaranda_test.c
index a47ef4a..df7b26b 100644
--- a/verilog/dv/jacaranda_test/jacaranda_test.c
+++ b/verilog/dv/jacaranda_test/jacaranda_test.c
@@ -21,25 +21,46 @@
 
 
 // --------------------------------------------------------
+//
 
-void main()
+#define BASE_ADDR 0x30000000
+#define IMEM_WRITE (BASE_ADDR + 0x100)
+
+static void
+write(uint32_t addr, uint32_t val)
+{
+    *(volatile uint32_t *)addr = val;
+}
+
+void
+reset()
+{
+    reg_la0_iena = 0;
+    reg_la0_oenb = 0;
+
+    reg_la0_data = 0;
+}
+
+void
+main()
 {
     #include "instr.c"
     reg_spimaster_config = 0xa002;
-	// Configure LA probes [31:0] as inputs to the cpu 
-	reg_la0_oenb = reg_la0_iena = 0x00000000;    // [31:0]
+
+    reset();
 
     // set reset to high
-	reg_la0_data = 1 << 16;
+	reg_la0_data = 1;
 
-    for(int i = 0; i < 256; ++i)
-        reg_la0_data = 1 << 16 | i << 8 | mem[i];
-    
+    write(IMEM_WRITE + 0x00, 0b11000000);
+    write(IMEM_WRITE + 0x01, 0b11010000);
+    write(IMEM_WRITE + 0x02, 0b10110011);
+
 //    reg_la0_data = 1 << 16 | 0x00 << 8 | 0b11000000; // ldih 0  0xC0
 //    reg_la0_data = 1 << 16 | 0x01 << 8 | 0b11010000; // ldil 0  0xD0
 //    reg_la0_data = 1 << 16 | 0x02 << 8 | 0b10110011; // jmp r3  0xB3
 
-    reg_la0_data = 0 << 16;
+    reg_la0_data = 0;
 
     while(1) {}
 }
diff --git a/verilog/dv/jacaranda_test/jacaranda_test_tb.v b/verilog/dv/jacaranda_test/jacaranda_test_tb.v
index 3f480f0..ea5a2dc 100644
--- a/verilog/dv/jacaranda_test/jacaranda_test_tb.v
+++ b/verilog/dv/jacaranda_test/jacaranda_test_tb.v
@@ -42,11 +42,11 @@
 	end
 
 	initial begin
-		$dumpfile("jacaranda_test.vcd");
+		$dumpfile("jacaranda_test.fst");
 		$dumpvars(0, jacaranda_test_tb);
 
 		// Repeat cycles of 1000 clock edges as needed to complete testbench
-		repeat (10) begin
+		repeat (30) begin
 			repeat (1000) @(posedge clock);
 			    $display("+1000 cycles");
 		end
diff --git a/verilog/rtl/jacaranda-8/computer.v b/verilog/rtl/jacaranda-8/computer.v
index cba21b7..2e84175 100644
--- a/verilog/rtl/jacaranda-8/computer.v
+++ b/verilog/rtl/jacaranda-8/computer.v
@@ -88,22 +88,36 @@
 
     wire [7:0] instr_mem_addr;
     wire [7:0] instr_mem_data; 
+    wire instr_mem_en;
 
     wire reset;
 
-    assign reset = la_data_in[16];
-    assign instr_mem_addr = reset ? la_data_in[15:8] : pc;
-    assign instr_mem_data = la_data_in[7:0];
+    assign reset = la_data_in[0];
 
+    wire clock;
+    assign clock = ~reset & wb_clk_i;
+
+    wishbone wb(.wb_clk_i(wb_clk_i),
+                .wb_rst_i(wb_rst_i),
+                .wbs_stb_i(wbs_stb_i),
+                .wbs_cyc_i(wbs_cyc_i),
+                .wbs_we_i(wbs_we_i),
+                .wbs_sel_i(wbs_sel_i),
+                .wbs_adr_i(wbs_adr_i),
+                .wbs_dat_i(wbs_dat_i),
+                .wbs_ack_o(wbs_ack_o),
+                .wbs_dat_o(wbs_dat_o),
+                .instr_mem_addr(instr_mem_addr),
+                .instr_mem_data(instr_mem_data),
+                .instr_mem_en(instr_mem_en));
 
     instr_mem instr_mem(.addr(instr_mem_addr),
                         .w_data(instr_mem_data),
-                        .w_en(reset),
+                        .w_en(instr_mem_en),
                         .r_data(instr),
-                        .clock(wb_clk_i),
-                        .reset(reset));
+                        .clock(wb_clk_i));
 
-    cpu cpu(.raw_clock(wb_clk_i),
+    cpu cpu(.clock(clock),
             .reset(reset),
             .instr(instr),
             .pc(pc),
@@ -116,14 +130,14 @@
             .int_vec(int_vec),
             .reg_w_en(reg_w_en));
 
-    always @(posedge wb_clk_i) begin
+    always @(posedge clock) begin
         if(rs_data == 8'd255 && mem_w_en == 1) begin
             tx_en <= rd_data[0];
             rx_en <= rd_data[1];
         end
     end
 
-    always @(posedge wb_clk_i) begin
+    always @(posedge clock) begin
         if(rs_data == 8'd253 && mem_w_en == 1) begin
             tx_data <= rd_data;
             begin_flag = 1;
@@ -137,7 +151,7 @@
                       .w_data(rd_data),
                       .w_en(mem_w_en),
                       .r_data(_mem_r_data),
-                      .clock(wb_clk_i));
+                      .clock(clock));
 
     assign mem_r_data = (rs_data == 8'd254) ? {6'b0, receive_flag, busy_flag}
                       : (rs_data == 8'd252) ? rx_data
@@ -145,7 +159,7 @@
                       : (rs_data == 8'd249) ? led_state_reg
                       : _mem_r_data;
 
-    always @(posedge wb_clk_i) begin
+    always @(posedge clock) begin
         if(rs_data == 8'd251 && mem_w_en == 1) begin
             led_in_data <= rd_data;
             led_begin_flag <= 1'b1;
@@ -155,7 +169,7 @@
         end
     end
 
-    always @(posedge wb_clk_i) begin
+    always @(posedge clock) begin
         if(rs_data == 8'd248 && mem_w_en == 1) begin
             nanaseg_in_data <= rd_data;
         end else begin
@@ -165,7 +179,7 @@
     
 
     //割り込み要求が立っている時は割り込み不許可
-    always @(posedge wb_clk_i) begin
+    always @(posedge clock) begin
         if(int_req == 1'b1) begin
             int_en <= 8'h00;
         end else if(int_req == 1'b0) begin
@@ -173,7 +187,7 @@
         end
     end
 
-    always @(posedge wb_clk_i) begin
+    always @(posedge clock) begin
         //割り込みベクタの書き込み
         if(rs_data == 8'd250 && mem_w_en == 1'b1) begin
             int_vec <= rd_data;
@@ -182,7 +196,7 @@
         end
     end
 
-    UART UART(.clk(wb_clk_i),
+    UART UART(.clk(clock),
               .reset(reset),
               .tx_en(tx_en),
               .rx_en(rx_en),
diff --git a/verilog/rtl/jacaranda-8/cpu.v b/verilog/rtl/jacaranda-8/cpu.v
index d854802..d0f336a 100644
--- a/verilog/rtl/jacaranda-8/cpu.v
+++ b/verilog/rtl/jacaranda-8/cpu.v
@@ -1,5 +1,5 @@
-module cpu(raw_clock, reset, instr, pc, rd_data, rs_data, mem_w_en, mem_r_data, int_req, int_en, int_vec, reg_w_en);
-    input raw_clock;
+module cpu(clock, reset, instr, pc, rd_data, rs_data, mem_w_en, mem_r_data, int_req, int_en, int_vec, reg_w_en);
+    input clock;
     input reset;
     input [7:0] instr;
     //割り込み要求線
@@ -37,9 +37,6 @@
     //レジスタに書き込むデータをALUからのデータか選択する(1)でALUから(0)でそれ以外
     wire reg_alu_w_sel;
 
-    wire clock;
-    assign clock = reset ? 1'b1 : raw_clock;
-
     //ALUの制御信号
     wire [3:0] alu_ctrl;
     //ALUからの出力
diff --git a/verilog/rtl/jacaranda-8/instr_mem.v b/verilog/rtl/jacaranda-8/instr_mem.v
index ab1d7d5..115fb11 100644
--- a/verilog/rtl/jacaranda-8/instr_mem.v
+++ b/verilog/rtl/jacaranda-8/instr_mem.v
@@ -1,14 +1,13 @@
-module instr_mem(addr, w_data, w_en, r_data, clock, reset);
+module instr_mem(addr, w_data, w_en, r_data, clock);
     input [7:0] addr;
     input [7:0] w_data;
     input w_en;
     input clock;
     output [7:0] r_data;
-    input reset;
 
     reg [7:0] mem[0:255];
     
-    assign r_data = reset ? 8'h00 : mem[addr];
+    assign r_data = mem[addr];
 
     always @(posedge clock) begin
         if(w_en) begin
diff --git a/verilog/rtl/jacaranda-8/wishbone.v b/verilog/rtl/jacaranda-8/wishbone.v
new file mode 100644
index 0000000..57a1ded
--- /dev/null
+++ b/verilog/rtl/jacaranda-8/wishbone.v
@@ -0,0 +1,70 @@
+module wishbone(
+    input wb_clk_i,
+    input wb_rst_i,
+    input wbs_stb_i,
+    input wbs_cyc_i,
+    input wbs_we_i,
+    input [3:0] wbs_sel_i,
+    input [31:0] wbs_adr_i,
+    input [31:0] wbs_dat_i,
+    output wbs_ack_o,
+    output [31:0] wbs_dat_o,
+
+    output reg [7:0] instr_mem_addr,
+    output reg [7:0] instr_mem_data,
+    output reg instr_mem_en
+);
+
+// 0x3000_0100 - 0x3000_01FF: IMEM_WRITE
+parameter IMEM_WRITE_PREFIX = 24'h3000_01;
+
+wire valid;
+wire we;
+wire [31:0] rdata;
+wire [31:0] wdata;
+wire [31:0] addr;
+wire sel;
+wire reset;
+wire clk;
+reg ready;
+
+assign valid = wbs_cyc_i & wbs_stb_i; 
+assign wbs_ack_o = ready;
+assign we = wbs_we_i;
+assign wbs_dat_o = rdata;
+assign wdata = wbs_dat_i;
+assign addr = wbs_adr_i;
+assign sel = wbs_sel_i;
+
+assign reset = wb_rst_i;
+assign clk   = wb_clk_i;
+
+always @(posedge clk) begin
+    if(reset) begin
+        // reset
+        ready <= 1'b0;
+    end else begin
+        if(ready) begin
+            ready <= 1'b0;
+            instr_mem_en <= 1'b0;
+        end
+        // Read
+        if (valid && !ready && !we) begin
+            //case(addr)
+            //endcase
+            ready <= 1'b1;
+        // Write
+        end else if (valid && !ready && we) begin
+            case(addr[31:8])
+                IMEM_WRITE_PREFIX: begin
+                    instr_mem_addr <= addr[7:0];
+                    instr_mem_data <= wdata[7:0];
+                    instr_mem_en <= 1'b1;
+                end
+            endcase
+            ready <= 1'b1;
+        end 
+    end
+end
+endmodule
+
diff --git a/verilog/rtl/uprj_netlists.v b/verilog/rtl/uprj_netlists.v
index c8c2487..5ca1629 100644
--- a/verilog/rtl/uprj_netlists.v
+++ b/verilog/rtl/uprj_netlists.v
@@ -37,4 +37,5 @@
     `include "jacaranda-8/instr_mem.v"
     `include "jacaranda-8/main_controller.v"
     `include "jacaranda-8/regfile.v"
+    `include "jacaranda-8/wishbone.v"
 `endif
