Clock domains

Jan 07, 2004 2 Replies

Hi,



I have two clock domains in my Verilog design (Spartan2), 33 MHz and 20 MHz. My problem: data transport between domains create deadlock. (When I use the same clock in all domains, this send/receive primitive works fine, but I need different clocks...) Can somebody help me? URL, FAQ, RTFM? :)



Thanks, BB



// send @ 33 MHz data_reg = 4; data_ready


I don't exactly know what you want to do but maybe this could be helpful. Read this: At

formatting link
-> TechXclusive -> "Moving Data Across Asynchronous Clock Boundaries" by Peter Alfke

Patrik Eriksson

MHz.

Your circuit is (approximately) Weinstein's Flancter. Read the details in this URL:

formatting link

A couple of questions:

1) did you remember to initialise data_ready and last_data_ready?

2) did you stop the 33MHz side from sending, by having it look at the value of last_data_ready? If you send two values, then data_ready will toggle twice and the 20MHz side will not see it.

HTH

Jonathan Bromley, Consultant DOULOS - Developing Design Know-how VHDL * Verilog * SystemC * Perl * Tcl/Tk * Verification * Project Services Doulos Ltd. Church Hatch, 22 Market Place, Ringwood, Hampshire, BH24 1AW, UK Tel: +44 (0)1425 471223 mail: jonathan.bromley@doulos.com Fax: +44 (0)1425 471573 Web: http://www.doulos.com The contents of this message may contain personal views which are not the views of Doulos Ltd., unless specifically stated.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required