diff --git a/src/ptp/rtl/taxi_ptp_td_leaf.sv b/src/ptp/rtl/taxi_ptp_td_leaf.sv index 4bb6f25..8ea373b 100644 --- a/src/ptp/rtl/taxi_ptp_td_leaf.sv +++ b/src/ptp/rtl/taxi_ptp_td_leaf.sv @@ -420,7 +420,7 @@ always_comb begin endcase // time integral of error - case (dst_gain_sel_reg) + case (dst_gain_sel_reg && !dst_sync_locked_reg) 1'd0: {dst_ovf, dst_err_int_next} = $signed({1'b0, dst_err_int_reg}) + (PHASE_ACC_W+2)'($signed(sample_acc_sync_reg)); 1'd1: {dst_ovf, dst_err_int_next} = $signed({1'b0, dst_err_int_reg}) + (PHASE_ACC_W+2)'($signed(sample_acc_sync_reg) * 2**7); endcase @@ -435,7 +435,7 @@ always_comb begin end // compute output - case (dst_gain_sel_reg) + case (dst_gain_sel_reg && !dst_sync_locked_reg) 1'd0: {dst_ovf, dst_phase_inc_next} = $signed({1'b0, dst_err_int_reg}) + ($signed(sample_acc_sync_reg) * 2**4); 1'd1: {dst_ovf, dst_phase_inc_next} = $signed({1'b0, dst_err_int_reg}) + ($signed(sample_acc_sync_reg) * 2**11); endcase