cancel
Showing results for
Show  only  | Search instead for
Did you mean:
Contributor
1,809 Views
Registered: ‎07-27-2017

## Synchronize different frequency signals with an external pulse trigger

I have to synchronize three signals, namely

Signal#1 - PWM of 2MHz frequency,

Signal#2 - Square wave of 200 kHz frequency, and

Signal#3 - Square wave of 2 MHz frequency

I use a clock of 10 ns period. How can I synchronize all these signals when an external pulse SYNC of 10us high is triggered? The synchronization needs to be within a few clock cycles later.

Tags (2)
1 Solution

Accepted Solutions
Contributor
1,745 Views
Registered: ‎07-27-2017

I used a state machine like logic such that when an external trigger is identified, I let the longest period signal to complete its current cycle and let other two signals to continue toggling. If the current cycle of the first signal is completed, I will repeat the same logic to the next two signals. After all the three signals are stop, I will restart all of them on the next rising edge of the 100 MHz clock.

3 Replies
Moderator
1,791 Views
Registered: ‎04-18-2011

Hi @amkichu

There are 2 Jobs I think.

The first step I think is to take all 3 signals and synchronize them to the 100Mhz clock domain.

Since the period of the 3 signals is larger than the 10ns of the fpga then you can use the simple 2 stage FF synchronizer.

This means that everything is represented in the 100Mhz domain.

The next step you want to do is align the 3 signals

You will need to buffer the 100Mhz version of the signals.

I would then have logic that looks inside the buffer to identify an edge so now you know where the 0-1 transitions are on each signal are in relation to one another.

Once this is known, when the sync arrive the output of the buffer should tap off the location where the edge occurs.

Now I think the edges are sychronous and aligned to one another at 100MHz

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
Contributor
1,758 Views
Registered: ‎07-27-2017
As a note, that I forgot to mention while posting, all these three signals are derived from the 100MHz clock itself, so I guess there is no need for the first job, synchronize.
Contributor
1,746 Views
Registered: ‎07-27-2017

I used a state machine like logic such that when an external trigger is identified, I let the longest period signal to complete its current cycle and let other two signals to continue toggling. If the current cycle of the first signal is completed, I will repeat the same logic to the next two signals. After all the three signals are stop, I will restart all of them on the next rising edge of the 100 MHz clock.