diff --git a/nanosoc/nanosoc_control/verilog/nanosoc_pin_mux.v b/nanosoc/nanosoc_control/verilog/nanosoc_pin_mux.v
index 1de2acdd2870a0041b0c2e69669f3d6b053988dc..d52b04fc3ae03bb8146a30ec8d33c68630bc0636 100644
--- a/nanosoc/nanosoc_control/verilog/nanosoc_pin_mux.v
+++ b/nanosoc/nanosoc_control/verilog/nanosoc_pin_mux.v
@@ -154,81 +154,41 @@ module nanosoc_pin_mux (
   assign    p1_out_en_mux[15:6] = p1_outen[15:6];
 
 
-  // Output tristate
-  //assign    P0[ 0] = p0_out_en_mux[ 0] ? p0_out_mux[ 0] : 1'bz;
-  //assign    P0[ 1] = p0_out_en_mux[ 1] ? p0_out_mux[ 1] : 1'bz;
-  //assign    P0[ 2] = p0_out_en_mux[ 2] ? p0_out_mux[ 2] : 1'bz;
-  //assign    P0[ 3] = p0_out_en_mux[ 3] ? p0_out_mux[ 3] : 1'bz;
-  //assign    P0[ 4] = p0_out_en_mux[ 4] ? p0_out_mux[ 4] : 1'bz;
-  //assign    P0[ 5] = p0_out_en_mux[ 5] ? p0_out_mux[ 5] : 1'bz;
-  //assign    P0[ 6] = p0_out_en_mux[ 6] ? p0_out_mux[ 6] : 1'bz;
-  //assign    P0[ 7] = p0_out_en_mux[ 7] ? p0_out_mux[ 7] : 1'bz;
-  //assign    P0[ 8] = p0_out_en_mux[ 8] ? p0_out_mux[ 8] : 1'bz;
-  //assign    P0[ 9] = p0_out_en_mux[ 9] ? p0_out_mux[ 9] : 1'bz;
-  //assign    P0[10] = p0_out_en_mux[10] ? p0_out_mux[10] : 1'bz;
-  //assign    P0[11] = p0_out_en_mux[11] ? p0_out_mux[11] : 1'bz;
-  //assign    P0[12] = p0_out_en_mux[12] ? p0_out_mux[12] : 1'bz;
-  //assign    P0[13] = p0_out_en_mux[13] ? p0_out_mux[13] : 1'bz;
-  //assign    P0[14] = p0_out_en_mux[14] ? p0_out_mux[14] : 1'bz;
-  //assign    P0[15] = p0_out_en_mux[15] ? p0_out_mux[15] : 1'bz;
+// port input feedback
+  assign    p0_in[ 0] = p0_out_en_mux[ 0] ? p0_out_mux[ 0] : 1'b1;
+  assign    p0_in[ 1] = p0_out_en_mux[ 1] ? p0_out_mux[ 1] : 1'b1;
+  assign    p0_in[ 2] = p0_out_en_mux[ 2] ? p0_out_mux[ 2] : 1'b1;
+  assign    p0_in[ 3] = p0_out_en_mux[ 3] ? p0_out_mux[ 3] : 1'b1;
+  assign    p0_in[ 4] = p0_out_en_mux[ 4] ? p0_out_mux[ 4] : 1'b1;
+  assign    p0_in[ 5] = p0_out_en_mux[ 5] ? p0_out_mux[ 5] : 1'b1;
+  assign    p0_in[ 6] = p0_out_en_mux[ 6] ? p0_out_mux[ 6] : 1'b1;
+  assign    p0_in[ 7] = p0_out_en_mux[ 7] ? p0_out_mux[ 7] : 1'b1;
+  assign    p0_in[ 8] = p0_out_en_mux[ 8] ? p0_out_mux[ 8] : 1'b1;
+  assign    p0_in[ 9] = p0_out_en_mux[ 9] ? p0_out_mux[ 9] : 1'b1;
+  assign    p0_in[10] = p0_out_en_mux[10] ? p0_out_mux[10] : 1'b1;
+  assign    p0_in[11] = p0_out_en_mux[11] ? p0_out_mux[11] : 1'b1;
+  assign    p0_in[12] = p0_out_en_mux[12] ? p0_out_mux[12] : 1'b1;
+  assign    p0_in[13] = p0_out_en_mux[13] ? p0_out_mux[13] : 1'b1;
+  assign    p0_in[14] = p0_out_en_mux[14] ? p0_out_mux[14] : 1'b1;
+  assign    p0_in[15] = p0_out_en_mux[15] ? p0_out_mux[15] : 1'b1;
 //
-  //assign    P1[ 0] = p1_out_en_mux[ 0] ? p1_out_mux[ 0] : 1'bz;
-  //assign    P1[ 1] = p1_out_en_mux[ 1] ? p1_out_mux[ 1] : 1'bz;
-  //assign    P1[ 2] = p1_out_en_mux[ 2] ? p1_out_mux[ 2] : 1'bz;
-  //assign    P1[ 3] = p1_out_en_mux[ 3] ? p1_out_mux[ 3] : 1'bz;
-  //assign    P1[ 4] = p1_out_en_mux[ 4] ? p1_out_mux[ 4] : 1'bz;
-  //assign    P1[ 5] = p1_out_en_mux[ 5] ? p1_out_mux[ 5] : 1'bz;
-  //assign    P1[ 6] = p1_out_en_mux[ 6] ? p1_out_mux[ 6] : 1'bz;
-  //assign    P1[ 7] = p1_out_en_mux[ 7] ? p1_out_mux[ 7] : 1'bz;
-  //assign    P1[ 8] = p1_out_en_mux[ 8] ? p1_out_mux[ 8] : 1'bz;
-  //assign    P1[ 9] = p1_out_en_mux[ 9] ? p1_out_mux[ 9] : 1'bz;
-  //assign    P1[10] = p1_out_en_mux[10] ? p1_out_mux[10] : 1'bz;
-  //assign    P1[11] = p1_out_en_mux[11] ? p1_out_mux[11] : 1'bz;
-  //assign    P1[12] = p1_out_en_mux[12] ? p1_out_mux[12] : 1'bz;
-  //assign    P1[13] = p1_out_en_mux[13] ? p1_out_mux[13] : 1'bz;
-  //assign    P1[14] = p1_out_en_mux[14] ? p1_out_mux[14] : 1'bz;
-  //assign    P1[15] = p1_out_en_mux[15] ? p1_out_mux[15] : 1'bz;
-
-/*
-// synopsys translate_off
-
-  // Pullup
-  pullup(P0[ 0]);
-  pullup(P0[ 1]);
-  pullup(P0[ 2]);
-  pullup(P0[ 3]);
-  pullup(P0[ 4]);
-  pullup(P0[ 5]);
-  pullup(P0[ 6]);
-  pullup(P0[ 7]);
-  pullup(P0[ 8]);
-  pullup(P0[ 9]);
-  pullup(P0[10]);
-  pullup(P0[11]);
-  pullup(P0[12]);
-  pullup(P0[13]);
-  pullup(P0[14]);
-  pullup(P0[15]);
-
-  pullup(P1[ 0]);
-  pullup(P1[ 1]);
-  pullup(P1[ 2]);
-  pullup(P1[ 3]);
-  pullup(P1[ 4]);
-  pullup(P1[ 5]);
-  pullup(P1[ 6]);
-  pullup(P1[ 7]);
-  pullup(P1[ 8]);
-  pullup(P1[ 9]);
-  pullup(P1[10]);
-  pullup(P1[11]);
-  pullup(P1[12]);
-  pullup(P1[13]);
-  pullup(P1[14]);
-  pullup(P1[15]);
-
-// synopsys translate_on
-*/
+  assign    p1_in[ 0] = p1_out_en_mux[ 0] ? p1_out_mux[ 0] : 1'b1;
+  assign    p1_in[ 1] = p1_out_en_mux[ 1] ? p1_out_mux[ 1] : 1'b1;
+  assign    p1_in[ 2] = p1_out_en_mux[ 2] ? p1_out_mux[ 2] : 1'b1;
+  assign    p1_in[ 3] = p1_out_en_mux[ 3] ? p1_out_mux[ 3] : 1'b1;
+  assign    p1_in[ 4] = p1_out_en_mux[ 4] ? p1_out_mux[ 4] : 1'b1;
+  assign    p1_in[ 5] = p1_out_en_mux[ 5] ? p1_out_mux[ 5] : 1'b1;
+  assign    p1_in[ 6] = p1_out_en_mux[ 6] ? p1_out_mux[ 6] : 1'b1;
+  assign    p1_in[ 7] = p1_out_en_mux[ 7] ? p1_out_mux[ 7] : 1'b1;
+  assign    p1_in[ 8] = p1_out_en_mux[ 8] ? p1_out_mux[ 8] : 1'b1;
+  assign    p1_in[ 9] = p1_out_en_mux[ 9] ? p1_out_mux[ 9] : 1'b1;
+  assign    p1_in[10] = p1_out_en_mux[10] ? p1_out_mux[10] : 1'b1;
+  assign    p1_in[11] = p1_out_en_mux[11] ? p1_out_mux[11] : 1'b1;
+  assign    p1_in[12] = p1_out_en_mux[12] ? p1_out_mux[12] : 1'b1;
+  assign    p1_in[13] = p1_out_en_mux[13] ? p1_out_mux[13] : 1'b1;
+  assign    p1_in[14] = p1_out_en_mux[14] ? p1_out_mux[14] : 1'b1;
+  assign    p1_in[15] = p1_out_en_mux[15] ? p1_out_mux[15] : 1'b1;
+
   //-------------------------------------------
   // Debug connections
   //-------------------------------------------