This is an issue rather than a PR since the changes will be in binary files, so resolving merge conflicts "nicely" is not possible. Since this directly affects the switching logic I would like someone to double-check my arguments.
The problem
During freewheeling, the "switching" and "passive" half-bridge are swapped after every (full) cycle. On the gate drive signals (GDxA/B) which turn on at the same time as this "swap", a 30ns pulse is present at the start of the "passive" cycle of the corresponding half-bridge. Below are scope-shots of this pulse on a dev-board (with the CT input tied to 5V):


I originally noticed these pulses on the actual IGBT gates of my (small) coil, so I assume that they contribute some switching losses "in the real world" rather than being a purely theoretical issue.
The cause
All of the following is in the PWM schematic sheet. KillA and KillB are derived from Tselect/nTSelect:

These are inverted on every other falling edge of ST, which is a ~30ns pulse (2 cycles of 64 MHz):

However the half-bridges toggle on the rising edge of ST:

So the bridge that will become passive is switched 30ns before it is disabled, causing the pulse.
Proposed fix
As a fix I suggest to make Tselect/nTSelect toggle on the rising edge of ST instead of the falling one (by removing the inverter on ST in the second "cause"-screenshot). The value of (n)Tselect differs from the "old" value only while ST is high. The (n)Tselect signals are used in two places, the first and third "cause"-screenshot. In the first one we want the change. In the third one it does not change the behavior: Since HT is ST or …, both inputs of the MUX are high while ST is high and the select signal does not affect the output.

This removes the pulses while keeping the non-freewheeling output correct. I have tested the fix in my small coil without any issues, but I may have missed issues affecting e.g. only larger coils or QCWs.
This is an issue rather than a PR since the changes will be in binary files, so resolving merge conflicts "nicely" is not possible. Since this directly affects the switching logic I would like someone to double-check my arguments.
The problem
During freewheeling, the "switching" and "passive" half-bridge are swapped after every (full) cycle. On the gate drive signals (GDxA/B) which turn on at the same time as this "swap", a 30ns pulse is present at the start of the "passive" cycle of the corresponding half-bridge. Below are scope-shots of this pulse on a dev-board (with the CT input tied to 5V):
I originally noticed these pulses on the actual IGBT gates of my (small) coil, so I assume that they contribute some switching losses "in the real world" rather than being a purely theoretical issue.
The cause
All of the following is in the PWM schematic sheet.

KillAandKillBare derived fromTselect/nTSelect:These are inverted on every other falling edge of

ST, which is a ~30ns pulse (2 cycles of 64 MHz):However the half-bridges toggle on the rising edge of

ST:So the bridge that will become passive is switched 30ns before it is disabled, causing the pulse.
Proposed fix
As a fix I suggest to make

Tselect/nTSelecttoggle on the rising edge ofSTinstead of the falling one (by removing the inverter onSTin the second "cause"-screenshot). The value of(n)Tselectdiffers from the "old" value only whileSTis high. The(n)Tselectsignals are used in two places, the first and third "cause"-screenshot. In the first one we want the change. In the third one it does not change the behavior: Since HT isST or …, both inputs of the MUX are high whileSTis high and the select signal does not affect the output.This removes the pulses while keeping the non-freewheeling output correct. I have tested the fix in my small coil without any issues, but I may have missed issues affecting e.g. only larger coils or QCWs.