Use new verilog control module
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v index 22d4e46..42ae187 100644 --- a/verilog/rtl/user_project_wrapper.v +++ b/verilog/rtl/user_project_wrapper.v
@@ -78,12 +78,12 @@ output [2:0] user_irq ); -wire [54:0] sram0_connections; -wire [54:0] sram1_connections; -wire [47:0] io_sram2_connections; -wire [45:0] io_sram3_connections; -wire [46:0] io_sram4_connections; -wire [82:0] io_sram5_connections; +wire [55:0] sram0_connections; +wire [55:0] sram1_connections; +wire [48:0] io_sram2_connections; +wire [46:0] io_sram3_connections; +wire [47:0] io_sram4_connections; +wire [83:0] io_sram5_connections; wire [31:0] sram0_rw_out; @@ -95,27 +95,34 @@ wire [31:0] sram4_rw_out; wire [63:0] sram5_rw_out; +reg clk; + +always @(*) begin + clk <= io_in[1] ? user_clock2 : wb_clk_i; +end + openram_testchip CONTROL_LOGIC( - .clock(wb_clk_i), + .clock(clk), .reset(wb_rst_i), - .io_logical_analyzer_packet(la_data_in[85:0]), - .io_gpio_packet(la_data_in[85:0]), - .io_in_select(la_data_in[86]), - .io_sram0_rw_in(sram0_rw_out), - .io_sram0_r0_in(sram0_ro_out), - .io_sram1_rw_in(sram1_rw_out), - .io_sram1_ro_in(sram1_ro_out), - .io_sram2_rw_in(sram2_rw_out), - .io_sram3_rw_in(sram3_rw_out), - .io_sram4_rw_in(sram4_rw_out), - .io_sram5_rw_in(sram5_rw_out), - .io_sram0_connections(sram0_connections), - .io_sram1_connections(sram1_connections), - .io_sram2_connections(sram2_connections), - .io_sram3_connections(sram3_connections), - .io_sram4_connections(sram4_connections), - .io_sram5_connections(sram5_connections), - .io_sram_data(la_data_out[63:0]) + .la_packet(la_data_in[85:0]), + .gpio_packet(io_in[2]), + .in_select(la_data_in[86]), + .sram0_rw_in(sram0_rw_out), + .sram0_r0_in(sram0_ro_out), + .sram1_rw_in(sram1_rw_out), + .sram1_ro_in(sram1_ro_out), + .sram2_rw_in(sram2_rw_out), + .sram3_rw_in(sram3_rw_out), + .sram4_rw_in(sram4_rw_out), + .sram5_rw_in(sram5_rw_out), + .sram0_connections(sram0_connections), + .sram1_connections(sram1_connections), + .sram2_connections(sram2_connections), + .sram3_connections(sram3_connections), + .sram4_connections(sram4_connections), + .sram5_connections(sram5_connections), + .la_data(la_data_out[63:0]), + .gpio_data(io_out[1]) ); sky130_sram_1kbyte_1rw1r_32x256_8 SRAM0 @@ -125,14 +132,14 @@ .vccd1(vccd1), .vssd1(vssd1), `endif - .clk0 (wb_clk_i), + .clk0 (sram0_connections[55]), .csb0 (sram0_connections[54]), .web0 (sram0_connections[53]), .wmask0 (sram0_connections[52:49]), .addr0 (sram0_connections[48:41]), .din0 (sram0_connections[40:9]), .dout0 (sram0_rw_out), - .clk1 (wb_clk_i), + .clk1 (sram0_connections[55]), .csb1 (sram0_connections[8]), .addr1 (sram0_connections[7:0]), .dout1 (sram0_ro_out)); @@ -143,14 +150,14 @@ .vccd1(vccd1), .vssd1(vssd1), `endif - .clk0 (wb_clk_i), + .clk0 (sram1_connections[55]), .csb0 (sram1_connections[54]), .web0 (sram1_connections[53]), .wmask0 (sram1_connections[52:49]), .addr0 (sram1_connections[48:41]), .din0 (sram1_connections[40:9]), .dout0 (sram1_rw_out), - .clk1 (wb_clk_i), + .clk1 (sram1_connections[55]), .csb1 (sram1_connections[8]), .addr1 (sram1_connections[7:0]), .dout1 (sram1_ro_out)); @@ -161,7 +168,7 @@ .vccd1(vccd1), .vssd1(vssd1), `endif - .clk0 (wb_clk_i), + .clk0 (sram2_connections[48]), .csb0 (sram2_connections[47]), .web0 (sram2_connections[46]), .wmask0 (sram2_connections[45:42]), @@ -175,7 +182,7 @@ .vccd1(vccd1), .vssd1(vssd1), `endif - .clk0 (wb_clk_i), + .clk0 (sram3_connections[46]), .csb0 (sram3_connections[45]), .web0 (sram3_connections[44]), .wmask0 (sram3_connections[43:40]), @@ -189,7 +196,7 @@ .vccd1(vccd1), .vssd1(vssd1), `endif - .clk0 (wb_clk_i), + .clk0 (sram4_connections[47]), .csb0 (sram4_connections[46]), .web0 (sram4_connections[45]), .wmask0 (sram4_connections[44:41]), @@ -203,7 +210,7 @@ .vccd1(vccd1), .vssd1(vssd1), `endif - .clk0 (wb_clk_i), + .clk0 (sram5_connections[83]), .csb0 (sram5_connections[82]), .web0 (sram5_connections[81]), .wmask0 (sram5_connections[80:73]),