I'm having a problem with external sync. I'm using DPWM modules 0, 1, and 3, and they are all used to control various parts of the same converter. They are all synced to the external sync on pin 21 (UCD3138RMH). The problem is this: there seems to be an internal race from pin 21 to each of the individual modules that causes uncertainty in their relative timing.
Let me explain. Say, for example, that the rising edges of DPWM0A and DPWM1A are set to be 16ns apart, with 1 following 0, shortly after the sync signal. Most of the time, there is no problem. Occasionally, however, the SYNC signal will reset DPWM0 close enough to the internal clock's increment that it's still propagating to DPWM1 while that increments. This means that DPWM1 isn't reset by sync with DPWM0, but that it's reset 1 cycle (4 ns) later. It will run 1 PWM cycle this way and then (usually) become synced with DPWM0 again on the next rising edge of pin 21.
The observed effect is much simpler than the explanation: If I set two edges in two different DPWM modules to be (e.g.) 16 ns apart, then they will be 16 ns apart most of the time, and 20 ns apart occasionally.
Initially, I thought I might fix this by syncing DPWM1 and 3 from DPWM0 and syncing DPWM0 externally. I'm not sure this was a good idea, but, regardless, I've not been able to get it working.