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),