fix io_oeb polarity
diff --git a/openlane/user_proj_example/config.json b/openlane/user_proj_example/config.json index 9f05696..68779a7 100644 --- a/openlane/user_proj_example/config.json +++ b/openlane/user_proj_example/config.json
@@ -20,8 +20,8 @@ "dir::../../verilog/rtl/verilog-uart/rtl/uart.v" ], "CLOCK_PERIOD": 10, - "CLOCK_PORT": "wb_clk_i,user_clock2", - "CLOCK_NET": "counter.clk,uart2ttl.clk48", + "CLOCK_PORT": "user_clock2 wb_clk_i", + "CLOCK_NET": "counter.clk", "FP_SIZING": "absolute", "DIE_AREA": "0 0 900 600", "FP_PIN_ORDER_CFG": "dir::pin_order.cfg",
diff --git a/openlane/user_project_wrapper/config.json b/openlane/user_project_wrapper/config.json index 22a00ee..cb28226 100644 --- a/openlane/user_project_wrapper/config.json +++ b/openlane/user_project_wrapper/config.json
@@ -2,7 +2,7 @@ "DESIGN_NAME": "user_project_wrapper", "VERILOG_FILES": ["dir::../../verilog/rtl/defines.v", "dir::../../verilog/rtl/user_project_wrapper.v"], "CLOCK_PERIOD": 10, - "CLOCK_PORT": "user_clock2", + "CLOCK_PORT": "user_clock2 wb_clk_i", "CLOCK_NET": "mprj.clk", "FP_PDN_MACRO_HOOKS": "mprj vccd1 vssd1 vccd1 vssd1", "MACRO_PLACEMENT_CFG": "dir::macro.cfg", @@ -78,8 +78,6 @@ "FP_DEF_TEMPLATE": "dir::fixed_dont_change/user_project_wrapper_gf180mcu.def", "PL_OPENPHYSYN_OPTIMIZATIONS": 0, "DIODE_INSERTION_STRATEGY": 0, - "FP_PDN_CHECK_NODES": 0, - "MAGIC_WRITE_FULL_LEF": 0, - "FP_PDN_ENABLE_RAILS": 0 + "MAGIC_WRITE_FULL_LEF": 0 } }
diff --git a/verilog/rtl/user_defines.v b/verilog/rtl/user_defines.v index 74f5459..fe9bcbc 100644 --- a/verilog/rtl/user_defines.v +++ b/verilog/rtl/user_defines.v
@@ -85,10 +85,10 @@ `define USER_CONFIG_GPIO_32_INIT `GPIO_MODE_MGMT_STD_INPUT_NOPULL // User GPIO 33 to 37 -`define USER_CONFIG_GPIO_33_INIT `GPIO_MODE_USER_STD_INPUT_NOPULL -`define USER_CONFIG_GPIO_34_INIT `GPIO_MODE_USER_STD_OUTPUT -`define USER_CONFIG_GPIO_35_INIT `GPIO_MODE_USER_STD_BIDIRECTIONAL +`define USER_CONFIG_GPIO_33_INIT `GPIO_MODE_USER_STD_OUTPUT +`define USER_CONFIG_GPIO_34_INIT `GPIO_MODE_USER_STD_INPUT_NOPULL +`define USER_CONFIG_GPIO_35_INIT `GPIO_MODE_USER_STD_OUTPUT `define USER_CONFIG_GPIO_36_INIT `GPIO_MODE_USER_STD_BIDIRECTIONAL -`define USER_CONFIG_GPIO_37_INIT `GPIO_MODE_USER_STD_OUTPUT +`define USER_CONFIG_GPIO_37_INIT `GPIO_MODE_USER_STD_BIDIRECTIONAL `endif // __USER_DEFINES_H
diff --git a/verilog/rtl/user_proj_example.v b/verilog/rtl/user_proj_example.v index 9199f31..065fed0 100644 --- a/verilog/rtl/user_proj_example.v +++ b/verilog/rtl/user_proj_example.v
@@ -129,23 +129,23 @@ wire usb_pu; wire usb_tx_en; - // io_out[33] input uart_rx + // io_out[33] output uart_tx assign io_oeb[`MPRJ_IO_PADS-5] = 1'b0; - assign uart_rx = io_out[`MPRJ_IO_PADS-5]; - // io_out[34] output uart_tx + assign io_out[`MPRJ_IO_PADS-5] = uart_tx; + // io_out[34] input uart_rx assign io_oeb[`MPRJ_IO_PADS-4] = 1'b1; - assign io_out[`MPRJ_IO_PADS-4] = uart_tx; - // io_out[35] inout usb_p - assign io_oeb[`MPRJ_IO_PADS-3] = usb_tx_en; - assign io_out[`MPRJ_IO_PADS-3] = /* usb_tx_en ? */ usb_p; - assign usb_p = io_out[`MPRJ_IO_PADS-3]; + assign uart_rx = io_out[`MPRJ_IO_PADS-4]; + // io_out[35] output usb_pu + assign io_oeb[`MPRJ_IO_PADS-3] = 1'b0; + assign io_out[`MPRJ_IO_PADS-3] = usb_pu; // io_out[36] inout usb_n - assign io_oeb[`MPRJ_IO_PADS-2] = usb_tx_en; + assign io_oeb[`MPRJ_IO_PADS-2] = ~usb_tx_en; assign io_out[`MPRJ_IO_PADS-2] = /* usb_tx_en ? */ usb_n; assign usb_n = io_out[`MPRJ_IO_PADS-2]; - // io_out[37] output usb_pu - assign io_oeb[`MPRJ_IO_PADS-1] = 1'b1; - assign io_out[`MPRJ_IO_PADS-1] = usb_pu; + // io_out[37] inout usb_p + assign io_oeb[`MPRJ_IO_PADS-1] = ~usb_tx_en; + assign io_out[`MPRJ_IO_PADS-1] = /* usb_tx_en ? */ usb_p; + assign usb_p = io_out[`MPRJ_IO_PADS-1]; usb2uart usb2uart ( .clk48(user_clock2),