diff --git a/modules/wishbone/wb_lm32/generated/lm32_allprofiles.v b/modules/wishbone/wb_lm32/generated/lm32_allprofiles.v
index af57302c2115099032fd41b5f8ed608fdb10a422..2b0afba95ee0b7d673cb271631280c7fc732b706 100644
--- a/modules/wishbone/wb_lm32/generated/lm32_allprofiles.v
+++ b/modules/wishbone/wb_lm32/generated/lm32_allprofiles.v
@@ -5160,7 +5160,7 @@ end
              
         
             
-                 
+
             
                 
                   
@@ -18093,7 +18093,7 @@ end
              
         
             
-                 
+
             
                 
                   
@@ -31026,7 +31026,7 @@ end
              
         
             
-                 
+
             
                 
                   
@@ -43663,7 +43663,7 @@ end
              
         
             
-                 
+
             
                 
                   
@@ -56474,7 +56474,7 @@ end
              
         
             
-                 
+
             
                 
                   
@@ -69199,7 +69199,7 @@ end
              
         
             
-                 
+
             
                 
                   
@@ -81974,7 +81974,7 @@ end
              
         
             
-                 
+
             
                 
                   
@@ -89456,6 +89456,8 @@ endmodule
 
   
 
+  
+
 	  
 
 	  
@@ -90160,15 +90162,18 @@ wire   [ (2-1):0] D_BTE_O;
 
   
 
-                     
-                             
-                            
-                   
-                                 
- 
-                                 
 
+wire [ ((32-2)+2-1):2] trace_pc;                   
+wire trace_pc_valid;                            
+wire trace_exception;                           
+wire [ (3-1):0] trace_eid;                 
+wire trace_eret;                                
+  
+
+wire trace_bret;                                
+ 
 
+ 
 
 
 
@@ -90280,15 +90285,18 @@ lm32_cpu_wr_node
     .D_RTY_I               (D_RTY_I),
     
   
-                  
-            
-           
-                 
-                
- 
-                
 
+    .trace_pc              (trace_pc),
+    .trace_pc_valid        (trace_pc_valid),
+    .trace_exception       (trace_exception),
+    .trace_eid             (trace_eid),
+    .trace_eret            (trace_eret),
+  
+
+    .trace_bret            (trace_bret),
+ 
 
+ 
 
   
                 
@@ -91451,15 +91459,18 @@ module lm32_cpu_wr_node (
     D_RTY_I,
     
   
-    
-    
-    
-    
-    
- 
-    
 
+    trace_pc,
+    trace_pc_valid,
+    trace_exception,
+    trace_eid,
+    trace_eret,
+  
 
+    trace_bret,
+ 
+
+ 
 
   
     
@@ -91639,21 +91650,24 @@ input D_RTY_I;
    
    
   
-                   
-     
-                           
-    
-                          
-    
-                 
-     
-                               
-    
- 
-                               
-    
 
+output [ ((32-2)+2-1):2] trace_pc;                 
+reg    [ ((32-2)+2-1):2] trace_pc;
+output trace_pc_valid;                          
+reg    trace_pc_valid;
+output trace_exception;                         
+reg    trace_exception;
+output [ (3-1):0] trace_eid;               
+reg    [ (3-1):0] trace_eid;
+output trace_eret;                              
+reg    trace_eret;
+  
 
+output trace_bret;                              
+reg    trace_bret;
+ 
+
+ 
 
 
   
@@ -91868,9 +91882,10 @@ wire eret_d;
 reg eret_x;
 wire eret_q_x;
   
- 
- 
 
+reg eret_m;
+reg eret_w;
+ 
 
   
 
@@ -91878,9 +91893,10 @@ wire bret_d;
 reg bret_x;
 wire bret_q_x;
   
- 
- 
 
+reg bret_m;
+reg bret_w;
+ 
 
  
 
@@ -92042,8 +92058,9 @@ wire [ ((32-2)+2-1):2] pc_x;
 wire [ ((32-2)+2-1):2] pc_m;                       
 wire [ ((32-2)+2-1):2] pc_w;                       
   
-                          
 
+reg [ ((32-2)+2-1):2] pc_c;                        
+ 
 
   
 
@@ -92133,9 +92150,10 @@ reg [ (32-2)+2-1:8] deba;
 
 reg [ (3-1):0] eid_x;                      
   
-                        
-                        
 
+reg [ (3-1):0] eid_m;                      
+reg [ (3-1):0] eid_w;                      
+ 
 
 
   
@@ -94405,19 +94423,23 @@ begin
 
 
   
-              
-              
 
+            eid_m <= eid_x;
+            eret_m <= eret_q_x;
+ 
 
   
               
 
 
   
- 
-               
 
+  
+
+            bret_m <= bret_q_x; 
+ 
 
+ 
 
             write_enable_m <= exception_x ==  1'b1 ?  1'b1 : write_enable_x;            
   
@@ -94464,12 +94486,15 @@ begin
 
         write_idx_w <= write_idx_m;
   
-          
-          
- 
-           
 
+        eid_w <= eid_m;
+        eret_w <= eret_m;
+  
 
+        bret_w <= bret_m; 
+ 
+
+ 
 
         write_enable_w <= write_enable_m;
   
@@ -94577,65 +94602,74 @@ end
 
   
 
-   
 
-       
-    
-          
-          
-          
-          
-          
+always @(posedge clk_i  )
+begin
+    if (rst_i ==  1'b1)
+    begin
+        trace_pc_valid <=  1'b0;
+        trace_pc <= { (32-2){1'b0}};
+        trace_exception <=  1'b0;
+        trace_eid <=  3'h0;
+        trace_eret <=  1'b0;
+  
+
+        trace_bret <=  1'b0;
  
-          
 
-          
-    
-    
-    
-          
+        pc_c <= eba_reset/4;
+    end
+    else
+    begin
+        trace_pc_valid <=  1'b0;
         
- 
-               
+  
 
+        if ((debug_exception_q_w ==  1'b1) || (non_debug_exception_q_w ==  1'b1))
+ 
            
 
-                
-              
-              
-              
-              
-        
-        
-              
-        
-             
+
+        begin        
+            trace_exception <=  1'b1;
+            trace_pc_valid <=  1'b1;
+            trace_pc <= pc_w;
+            trace_eid <= eid_w;
+        end
+        else
+            trace_exception <=  1'b0;
         
+        if ((valid_w ==  1'b1) && (!kill_w))
+        begin
             
-                 
-            
+
+            begin
                 
-                  
-                  
-            
+                trace_pc_valid <=  1'b1;
+                trace_pc <= pc_w;
+            end
             
-              
+            pc_c <= pc_w;
             
-              
- 
-              
+            trace_eret <= eret_w;
+  
 
-        
-        
-        
-              
+            trace_bret <= bret_w;
  
-              
 
-        
-    
+        end
+        else
+        begin
+            trace_eret <=  1'b0;
+  
 
+            trace_bret <=  1'b0;
+ 
 
+        end
+    end
+end
+ 
 
       
 
diff --git a/modules/wishbone/wb_lm32/lm32.profiles b/modules/wishbone/wb_lm32/lm32.profiles
index 4d9f514664299e6e7aa43ed32a16e0bf7121a964..b7f7cfeb8162176607d99616125d0637013b1ce2 100644
--- a/modules/wishbone/wb_lm32/lm32.profiles
+++ b/modules/wishbone/wb_lm32/lm32.profiles
@@ -5,4 +5,4 @@ medium_debug CFG_PL_MULTIPLY_ENABLED CFG_PL_BARREL_SHIFT_ENABLED CFG_SIGN_EXTEND
 medium_icache_debug CFG_PL_MULTIPLY_ENABLED CFG_PL_BARREL_SHIFT_ENABLED CFG_SIGN_EXTEND_ENABLED CFG_ICACHE_ENABLED CFG_WITH_DEBUG CFG_INTERRUPTS_ENABLED
 full CFG_PL_MULTIPLY_ENABLED CFG_PL_BARREL_SHIFT_ENABLED CFG_SIGN_EXTEND_ENABLED CFG_INTERRUPTS_ENABLED CFG_MC_DIVIDE_ENABLED CFG_FAST_UNCONDITIONAL_BRANCH CFG_ICACHE_ENABLED CFG_DCACHE_ENABLED CFG_BUS_ERRORS_ENABLED
 full_debug CFG_PL_MULTIPLY_ENABLED CFG_PL_BARREL_SHIFT_ENABLED CFG_SIGN_EXTEND_ENABLED CFG_INTERRUPTS_ENABLED CFG_MC_DIVIDE_ENABLED CFG_FAST_UNCONDITIONAL_BRANCH CFG_ICACHE_ENABLED CFG_DCACHE_ENABLED CFG_BUS_ERRORS_ENABLED CFG_WITH_DEBUG
-wr_node CFG_PL_MULTIPLY_ENABLED CFG_PL_BARREL_SHIFT_ENABLED CFG_SIGN_EXTEND_ENABLED CFG_INTERRUPTS_ENABLED CFG_IRAM_ENABLED CFG_MC_DIVIDE_ENABLED CFG_ENABLE_PIN_ENABLED CFG_DEBUG_REGS_ENABLED CFG_DEBUG_ENABLED CFG_HW_DEBUG_ENABLED CFG_BUS_ERRORS_ENABLED
\ No newline at end of file
+wr_node CFG_PL_MULTIPLY_ENABLED CFG_PL_BARREL_SHIFT_ENABLED CFG_SIGN_EXTEND_ENABLED CFG_INTERRUPTS_ENABLED CFG_IRAM_ENABLED CFG_MC_DIVIDE_ENABLED CFG_ENABLE_PIN_ENABLED CFG_DEBUG_REGS_ENABLED CFG_DEBUG_ENABLED CFG_HW_DEBUG_ENABLED CFG_BUS_ERRORS_ENABLED CFG_TRACE_ENABLED
\ No newline at end of file
diff --git a/modules/wishbone/wb_lm32/src/lm32_cpu.v b/modules/wishbone/wb_lm32/src/lm32_cpu.v
index ad20e504fe8a4312b0e3a037914deaaf77666028..5f577be75e34320e366bcea15b816d876e1d2660 100644
--- a/modules/wishbone/wb_lm32/src/lm32_cpu.v
+++ b/modules/wishbone/wb_lm32/src/lm32_cpu.v
@@ -2795,7 +2795,7 @@ begin
         if ((valid_w == `TRUE) && (!kill_w))
         begin
             // An instruction is commiting. Determine if it is non-sequential
-            if (pc_c + 1'b1 != pc_w)
+//            if (pc_c + 1'b1 != pc_w)
             begin
                 // Non-sequential instruction
                 trace_pc_valid <= `TRUE;