diff --git a/software/common/debug_tests/debug_tests.h b/software/common/debug_tests/debug_tests.h
index cb90905ec3c73d07c05044703d2ccd0acd595ddb..e37ed83af501a15b8d5cbd618ca5051dde6a20c5 100644
--- a/software/common/debug_tests/debug_tests.h
+++ b/software/common/debug_tests/debug_tests.h
@@ -39,29 +39,19 @@
 //
 // CM0_MCU GPIO0 --------------------------------------  Debug Tester
 //
-// GPIO[15] 7 <----------------------------------------< Running
-// GPIO[14] 6 <----------------------------------------< Error
-// GPIO[13] 5 >----------------------------------------> Function Strobe
-// GPIO[12] 4 >----------------------------------------> Function Select bit 4
-// GPIO[11] 3 >----------------------------------------> Function Select bit 3
-// GPIO[10] 2 >----------------------------------------> Function Select bit 2
-// GPIO[9]  1 >----------------------------------------> Function Select bit 1
-// GPIO[8]  0 >----------------------------------------> Function Select bit 0
-//
-#define   DEBUG_BIT_LOC            8  //GPIO[8] is the least bit of Function Select
-#define   DEBUG_CMD                0x3f<<8            //GPIO [13:8]
-#define   DEBUG_STROBE             0x00002000         //GPIO [13]
-#define   DEBUG_ERROR              0x00004000         //GPIO [14]
-#define   DEBUG_RUNNING            0x00008000         //GPIO [15]
-
-// GPIO1[7] 7
-// GPIO1[6] 6
-// GPIO1[5] 5
-// GPIO1[4] 4
-// GPIO1[3] 3
-// GPIO1[2] 2
-// GPIO1[1] 1
-// GPIO1[0] 0
+// GPIO[7] 7 <----------------------------------------< Running
+// GPIO[6] 6 <----------------------------------------< Error
+// GPIO[5] 5 >----------------------------------------> Function Strobe
+// GPIO[4] 4 >----------------------------------------> Function Select bit 4
+// GPIO[3] 3 >----------------------------------------> Function Select bit 3
+// GPIO[2] 2 >----------------------------------------> Function Select bit 2
+// GPIO[1] 1 >----------------------------------------> Function Select bit 1
+// GPIO[0] 0 >----------------------------------------> Function Select bit 0
+#define   DEBUG_BIT_LOC            0           //GPIO[0] is the ls bit of Function Select
+#define   DEBUG_CMD                0x3f        //GPIO [5:0]
+#define   DEBUG_STROBE             0x20        //GPIO [5]
+#define   DEBUG_ERROR              0x40        //GPIO [6]
+#define   DEBUG_RUNNING            0x80        //GPIO [7]
 
 
 // CM0 MCU's view of the memory shared with the debugtester
diff --git a/testcodes/generic/mcu_debugtester_interface.h b/testcodes/generic/mcu_debugtester_interface.h
index 162672da8074da9cc2d6c364e1644a079de0c2d8..acb27bf69e421b479450855157f966c7ecee5239 100644
--- a/testcodes/generic/mcu_debugtester_interface.h
+++ b/testcodes/generic/mcu_debugtester_interface.h
@@ -69,30 +69,19 @@ extern uint32_t CheckDebugTester(void);
 //
 // CM0_MCU GPIO0 --------------------------------------  Debug Tester
 //
-// GPIO[15] 7 <----------------------------------------< Running
-// GPIO[14] 6 <----------------------------------------< Error
-// GPIO[13] 5 >----------------------------------------> Function Strobe
-// GPIO[12] 4 >----------------------------------------> Function Select bit 4
-// GPIO[11] 3 >----------------------------------------> Function Select bit 3
-// GPIO[10] 2 >----------------------------------------> Function Select bit 2
-// GPIO[9]  1 >----------------------------------------> Function Select bit 1
-// GPIO[8]  0 >----------------------------------------> Function Select bit 0
-//
-#define   DEBUG_BIT_LOC            8  //GPIO[8] is the least bit of Function Select
-#define   DEBUG_CMD                0x3f<<8            //GPIO [13:8]
-#define   DEBUG_STROBE             0x00002000         //GPIO [13]
-#define   DEBUG_ERROR              0x00004000         //GPIO [14]
-#define   DEBUG_RUNNING            0x00008000         //GPIO [15]
-
-// GPIO1[7] 7
-// GPIO1[6] 6
-// GPIO1[5] 5
-// GPIO1[4] 4
-// GPIO1[3] 3
-// GPIO1[2] 2
-// GPIO1[1] 1
-// GPIO1[0] 0
-
+// GPIO[7] 7 <----------------------------------------< Running
+// GPIO[6] 6 <----------------------------------------< Error
+// GPIO[5] 5 >----------------------------------------> Function Strobe
+// GPIO[4] 4 >----------------------------------------> Function Select bit 4
+// GPIO[3] 3 >----------------------------------------> Function Select bit 3
+// GPIO[2] 2 >----------------------------------------> Function Select bit 2
+// GPIO[1] 1 >----------------------------------------> Function Select bit 1
+// GPIO[0] 0 >----------------------------------------> Function Select bit 0
+#define   DEBUG_BIT_LOC            0           //GPIO[0] is the ls bit of Function Select
+#define   DEBUG_CMD                0x3f        //GPIO [5:0]
+#define   DEBUG_STROBE             0x20        //GPIO [5]
+#define   DEBUG_ERROR              0x40        //GPIO [6]
+#define   DEBUG_RUNNING            0x80        //GPIO [7]
 
 // CMSDK example MCU's view of the memory shared with the debugtester
 // (4 words above stack top)
diff --git a/verif/tb/verilog/nanosoc_tb.v b/verif/tb/verilog/nanosoc_tb.v
index 56decb4706e6abf7d1479932d6f748b38819f51a..025a943e8020211523ff5906f1c279def8593546 100644
--- a/verif/tb/verilog/nanosoc_tb.v
+++ b/verif/tb/verilog/nanosoc_tb.v
@@ -103,11 +103,29 @@ SROM_Ax32
     .SEL(1'b0),
     .RDATA( )
   );
-  
+
+`ifdef SDF_SIM
+initial
+  $sdf_annotate ( "../../../src/rtl/nanosoc_chip_pads_44pin.sdf"
+                 , u_nanosoc_chip_pads
+                 ,
+                 , "sdf_annotate.log"
+                 , "MAXIMUM"
+                 );
+`endif // SDF_SIM
+
+`ifdef VCD_SIM
+initial begin
+  $dumpfile("waves.vcd");
+  $dumpvars(6,u_nanosoc_chip_pads);
+  end
+`endif // VCD_SIM
+
  // --------------------------------------------------------------------------------
  // Cortex-M0/Cortex-M0+ Microcontroller
  // --------------------------------------------------------------------------------
 
+`ifdef SDF_SIM
   nanosoc_chip_pads
    u_nanosoc_chip_pads (
 `ifdef POWER_PINS
@@ -120,12 +138,30 @@ SROM_Ax32
   .CLK        (CLK),  // input
   .TEST       (TEST),  // input
   .NRST       (NRST),   // active low reset
-  .P0         (P0),
-  .P1         (P1),
+  .P0         (P0[7:0]),
+  .P1         (P1[7:0]),
   .SWDIO      (SWDIOTMS),
   .SWDCK      (SWCLKTCK)
   );
-
+`else
+  nanosoc_chip_pads
+   u_nanosoc_chip_pads (
+`ifdef POWER_PINS
+  .VDDIO      (VDDIO),
+  .VSSIO      (VSSIO),
+  .VDD        (VDD),
+  .VSS        (VSS),
+  .VDDACC     (VDDACC),
+`endif
+  .CLK        (CLK),  // input
+  .TEST       (TEST),  // input
+  .NRST       (NRST),   // active low reset
+  .P0         (P0[15:0]),
+  .P1         (P1[15:0]),
+  .SWDIO      (SWDIOTMS),
+  .SWDCK      (SWCLKTCK)
+  );
+`endif
  // --------------------------------------------------------------------------------
  // Source for clock and reset
  // --------------------------------------------------------------------------------
@@ -658,22 +694,21 @@ nanosoc_ft1248x1_track
    pulldown(debug_err);
 
    //Tristate logic for GPIO connection
-   bufif1 (debug_command[5], P0[29-16], debug_test_en);
-   bufif1 (debug_command[4], P0[28-16], debug_test_en);
-   bufif1 (debug_command[3], P0[27-16], debug_test_en);
-   bufif1 (debug_command[2], P0[26-16], debug_test_en);
-   bufif1 (debug_command[1], P0[25-16], debug_test_en);
-   bufif1 (debug_command[0], P0[24-16], debug_test_en);
-
-   bufif1 (P0[31-16], debug_running, debug_test_en);
-   bufif1 (P0[30-16], debug_err, debug_test_en);
+   bufif1 (P0[7], debug_running, debug_test_en);
+   bufif1 (P0[6], debug_err, debug_test_en);
+   bufif1 (debug_command[5], P0[3], debug_test_en);
+   bufif1 (debug_command[4], P0[4], debug_test_en);
+   bufif1 (debug_command[3], P0[3], debug_test_en);
+   bufif1 (debug_command[2], P0[2], debug_test_en);
+   bufif1 (debug_command[1], P0[1], debug_test_en);
+   bufif1 (debug_command[0], P0[0], debug_test_en);
 
   cmsdk_debug_tester #(.ROM_MEMFILE((BE==1) ? "debugtester_be.hex" : "debugtester_le.hex"))
   u_cmsdk_debug_tester
   (
    // Clock and Reset
    .CLK                                 (CLK),
-   .PORESETn                            (NRST),
+   .PORESETn                            (NRST_ext),
 
    // Command Interface
    .DBGCMD                              (debug_command[5:0]),
diff --git a/verif/trace/verilog/nanosoc_axi_stream_io_8_txd_from_file.v b/verif/trace/verilog/nanosoc_axi_stream_io_8_txd_from_file.v
index 715573214ec0eb01dde16df0f59dbaa16357f2f5..76d41cbe0b32ee3ae8abe43bfd28e0a5e23caddd 100644
--- a/verif/trace/verilog/nanosoc_axi_stream_io_8_txd_from_file.v
+++ b/verif/trace/verilog/nanosoc_axi_stream_io_8_txd_from_file.v
@@ -114,12 +114,12 @@ localparam BUFSIZE = (64 * 1024);
    $write("** %m : input file length measured as: %d **\n", flen); 
        if (flen > 0) flen=flen-1; // correct for extra char count(???)
        // now output the entire adp buffer to the stream
-       flen = flen + clen+25+1;
+       flen = flen + clen+25;
        fp = 0;
        valid <= 0;
        begin
          @(posedge aresetn);
-         while (fp < flen) begin
+         while (fp <= flen) begin
            @(posedge aclk);
            data8 <= adpbuf[fp];
            fp = fp + 1;