正在加载图片...
Crossing Clock Domains Moving information from one clock domain to another is rather like descending into Dante's inferno. All sorts of evils lie in wait to beset the naive. Setup and hold violations, metastability conditions, unreliable data, and other perils are manifest when moving from one clock domain to another. Indeed, the whole issue of synchronization might merit its own article. Here, a few tips will be pre sented which might help in resolving the block-to-block synchronization issues First, let's define the problem; please see Figure 4 Block A Block B Strobe A-B Data A-B Clock domain a clock domain b Strobe b-a Data b-a clock A Clock B FIGURE 4. Crossing clock Domains We have two blocks of logic, A and B Block A operates with Clock A, while Block B operates with Clock B We make no assumptions at all about the fre quencies of Clock A and Clock B; nor do we assume any integer or multiple relationship between the two. The two clocks are totally independent We need to send a strobe from Block a to Block B Strobe A-B), and also some data, Data A-B. In response, Strobe B-A returns, together with Data B-A. The transmission of information between the blocks must be absolutely reliable. To accomplish this, we will look at several aspects of the cross-domain problem The Ten Commandments of Excellent DesignCrossing Clock Domains The Ten Commandments of Excellent Design 9 Crossing Clock Domains Moving information from one clock domain to another is rather like descending into Dante’s inferno. All sorts of evils lie in wait to beset the naive. Setup and hold violations, metastability conditions, unreliable data, and other perils are manifest when moving from one clock domain to another. Indeed, the whole issue of synchronization might merit its own article. Here, a few tips will be pre￾sented which might help in resolving the block-to-block synchronization issues. First, let’s define the problem; please see Figure 4. FIGURE 4. Crossing Clock Domains We have two blocks of logic, A and B. Block A operates with Clock A, while Block B operates with Clock B. We make no assumptions at all about the fre￾quencies of Clock A and Clock B; nor do we assume any integer or multiple relationship between the two. The two clocks are totally independent. We need to send a strobe from Block A to Block B (Strobe A-B), and also some data, Data A-B. In response, Strobe B-A returns, together with Data B-A. The transmission of information between the blocks must be absolutely reliable. To accomplish this, we will look at several aspects of the cross-domain problem. Clock Domain A Clock A Clock Domain B Clock B Strobe A-B Strobe B-A Data A-B Data B-A Block A Block B
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有