Made corrections;  GPIO testbench now passes.
diff --git a/verilog/rtl/gpio_control_block.v b/verilog/rtl/gpio_control_block.v
index 5d3adb1..823856b 100644
--- a/verilog/rtl/gpio_control_block.v
+++ b/verilog/rtl/gpio_control_block.v
@@ -183,10 +183,17 @@
 
     /* Implement pad control behavior depending on state of mgmt_ena */
 
-    assign pad_gpio_out    =  (mgmt_ena) ? mgmt_gpio_out : user_gpio_out; 
-    assign pad_gpio_outenb =  (mgmt_ena) ? mgmt_gpio_oeb : user_gpio_oeb;
-
     assign user_gpio_in =    (mgmt_ena) ? 1'b0 : pad_gpio_in;
-    assign mgmt_gpio_in =    (mgmt_ena) ? pad_gpio_in : 1'b0;
+    assign mgmt_gpio_in =    (mgmt_ena) ? ((gpio_inenb == 1'b0) ?
+					pad_gpio_in : 1'bz) : 1'b0;
+
+    assign pad_gpio_outenb =  (mgmt_ena) ? ((mgmt_gpio_oeb == 1'b1) ? gpio_outenb :
+					1'b0) : user_gpio_oeb;
+    assign pad_gpio_out    =  (mgmt_ena) ? 
+			((mgmt_gpio_oeb == 1'b1) ?
+			((gpio_dm[2:1] == 2'b01) ? ~gpio_dm[0] : mgmt_gpio_out) :
+			mgmt_gpio_out) :
+			user_gpio_out; 
+
 
 endmodule