Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Data Bus Synchronization

Status
Not open for further replies.

vips

Newbie level 3
Joined
Aug 6, 2008
Messages
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,308
Hi

What is the method for synchronizing data bus across clock domain .

thanks
 

The best way to Synchronize the data bus is to convert it on the gyar code so that across the clock domain you see only one signal changing.

In the grey code only one bit is changes in the successive codes so it is used in the synchronization .
 

    vips

    Points: 2
    Helpful Answer Positive Rating
The fifo is a good way.
 

Hi,
Using fifos is the best way out. The answer suggested by vipulsinha isn't going to work. A simple binary counter which increments the count by 1, when mapped to gray code, shows the hamming distance of 1 between 2 successive counts. While here if we map the data to gray code, it is almost certain that the data will not behave like a counter, so the o/p gray code will not have a hamming distance of 1, and hence this method will not work.
Kr,
avi
 

Theres more to it.
If you want to transfer a single bit level signal use double ranked FFs. If the width of the signal is less than the clk you will have to add a pulse synchronizer
For data buses, use a mux synchronizer or FIFO. If latency is allowed a mux synchronizer is acceptable but if your data bus changes every clk, use a FIFO.
The Gray to binary and B2G "HAS" to be used for FIFO pointers crossing clock domains, since at pointer rollver (0111 to 1000), we need a safe transition. It is something like this B2G -> double_ranked_ff -> G2B
HTH,
Beo
 

Hi

In reply to Avi I have to make a point as FIFOs are used to match the data rate across the clock domain when we use async FIFOs. But in the case when the data rate is dame and clck phase is different then we have to use b2g converter and once the gray code is sucessfully obtaimed in the other clock domain then do g2b

thanks
 

    vips

    Points: 2
    Helpful Answer Positive Rating
each solution has it's own limitations. using FIFOs is usually more complicated and just bigger.
if speed is not an issue, you should do a simple 4 phase (or 2 phase) handshake between a request and acknowledge signals and then transfer the entire bus over.
look at chapter 7 of the following book: https://www.cmosvlsi.com/

the above book should be read by every designer!

ND

https://asicdigitaldesign.wordpress.com
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top