steve and jasons merged enable and pinout fixes
diff --git a/verilog/dv/caravel/user_proj_example/io_ports/io_ports.c b/verilog/dv/caravel/user_proj_example/io_ports/io_ports.c index bc8dbc3..add8845 100644 --- a/verilog/dv/caravel/user_proj_example/io_ports/io_ports.c +++ b/verilog/dv/caravel/user_proj_example/io_ports/io_ports.c
@@ -32,14 +32,16 @@ reg_mprj_io_3 = GPIO_MODE_USER_STD_OUTPUT; reg_mprj_io_4 = GPIO_MODE_USER_STD_OUTPUT; reg_mprj_io_5 = GPIO_MODE_USER_STD_OUTPUT; - reg_mprj_io_6 = GPIO_MODE_USER_STD_OUTPUT; - reg_mprj_io_7 = GPIO_MODE_USER_STD_OUTPUT; + reg_mprj_io_6 = GPIO_MODE_USER_STD_INPUT_NOPULL; + reg_mprj_io_7 = GPIO_MODE_USER_STD_INPUT_NOPULL; + reg_mprj_io_15 = GPIO_MODE_USER_STD_OUTPUT; + reg_mprj_io_16 = GPIO_MODE_USER_STD_OUTPUT; reg_mprj_io_14 = GPIO_MODE_USER_STD_OUTPUT; reg_mprj_io_15 = GPIO_MODE_USER_STD_OUTPUT; reg_mprj_io_16 = GPIO_MODE_USER_STD_OUTPUT; reg_mprj_io_17 = GPIO_MODE_USER_STD_OUTPUT; - reg_mprj_io_18 = GPIO_MODE_USER_STD_INPUT_NOPULL; - reg_mprj_io_19 = GPIO_MODE_USER_STD_INPUT_NOPULL; + reg_mprj_io_18 = GPIO_MODE_USER_STD_OUTPUT; + reg_mprj_io_19 = GPIO_MODE_USER_STD_OUTPUT; reg_mprj_io_20 = GPIO_MODE_USER_STD_OUTPUT; reg_mprj_io_21 = GPIO_MODE_USER_STD_OUTPUT; reg_mprj_io_22 = GPIO_MODE_USER_STD_INPUT_NOPULL; @@ -71,7 +73,7 @@ reg_la3_ena = 0xFFFFFFFF; // [127:96] // Set Counter value to zero through LA probes [63:32] - reg_la2_data = 0x00000002; + reg_la2_data = 0x00000003; }
diff --git a/verilog/rtl/rapcore_caravel.v b/verilog/rtl/rapcore_caravel.v index 83edb5d..5e360a1 100644 --- a/verilog/rtl/rapcore_caravel.v +++ b/verilog/rtl/rapcore_caravel.v
@@ -58,6 +58,7 @@ ); wire clk; wire rst; + wire enable; wire [`MPRJ_IO_PADS-1:0] io_in; wire [`MPRJ_IO_PADS-1:0] io_out; @@ -87,8 +88,9 @@ // Assuming LA probes [63:32] are for controlling the count register assign la_write = ~la_oen[63:32] & ~{BITS{valid}}; // Assuming LA probes [65:64] are for controlling the count clk & reset - assign clk = (~la_oen[64]) ? la_data_in[64]: wb_clk_i; + assign clk = wb_clk_i; assign rst = ~la_oen[65] && la_data_in[65] && ~wb_rst_i; + assign enable = ~la_oen[64] && la_data_in[64]; // GPIO output enable (0 = output, 1 = input) assign io_oeb[15] = 1'b0; // CHARGEPUMP @@ -104,8 +106,8 @@ assign io_oeb[18] = 1'b0; // PHASE_A2_H assign io_oeb[14] = 1'b0; // PHASE_B1_H assign io_oeb[17] = 1'b0; // PHASE_B2_H - assign io_oeb[18] = 1'b1; // ENC_B - assign io_oeb[19] = 1'b1; // ENC_A + assign io_oeb[12] = 1'b0; // ENC_B + assign io_oeb[13] = 1'b0; // ENC_A assign io_oeb[37] = 1'b0; // BUFFER_DTR assign io_oeb[24] = 1'b0; // MOVE_DONE assign io_oeb[29] = 1'b1; // HALT @@ -175,7 +177,8 @@ .STEPOUTPUT(io_out[30]), .DIROUTPUT(io_out[31]), .STEPINPUT(io_in[32]), - .DIRINPUT(io_in[33]) + .DIRINPUT(io_in[33]), + .ENINPUT(enable) ); endmodule