關於跨clock domain處理的觀念

本文探讨了数字设计工程师在处理跨时钟域信号时常见的挑战,详细介绍了避免metastable状态的基本策略,包括使用two-flip-flop方法、区分长脉冲与单脉冲信号、处理连续与不连续单脉冲信号,以及为何不应同步address和data信号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做為一個數位設計的工程師,最常遇到的情形就是訊號需要跨clock domain的處理。能使用的解決方法有很多,每個需要處理的情況也不儘相同,所以我並不就實作方法著眼,只想談談處理它的概念。

為什麼要處理跨clock domain的訊號?

使用來自其它clock domain的訊號時,容易會遇到metastable的情形,而致使產生錯誤結果。為了避免錯誤的發生,此時就需要同步來自其他clock domain的訊號。但是要怎麼做,才能做好同步處理?如果可以謹記下面的觀念,相信您一定就可以做出自已的同步訊號處理。

1. 遵守two-flip-flop的方法。

處理metastable的最基本的步驟就是用本身的clock來做two-flip-flop的同步。(這是每位數位工程師都要謹記,不可忽略的步驟)

 

QB就是經過兩個Flip-Flop後的訊號。用QB的訊號做為控制訊號,相信就可以避免metastable產生。

2. 分類同步訊號是哪一種?

是長脈衝訊號(long pulse),還是單脈衝訊號(one-pulse) ? 如果是長脈衝訊號,利用第一點的方法,相信就可以解決。如果是單脈衝訊號,想辦法轉成長脈衝訊號後,再利用第一點的方法即可以解決。

 

 

3.是連續單脈衝訊號還是不連續單脈衝訊號?

如果是不連續單脈衝訊號,而且每個單脈衝訊號之間的同步並不會互相影響的話,相信用第二點的方法就可以解決。但是如果是連續單脈衝訊號,想辦法變成不連續單脈衝訊號,然後再用第二點的方法就可以解決。坊間有很多種的方法,網路搜尋一下就可以找到了,在此就不赘敘。

4. 上面所說的,都是單一訊號的同步處理,切記,address、data都是不可能拿來同步處理。

5. 所有同步處理,最終都是回到第一點的情形去處理。

 

如果你抓住這些基本觀念,相信你也一定可以設計出你自己的同步處理裝置。

以上的觀念,希望能對你有所幫助。

转载于:https://www.cnblogs.com/orchid123/p/3543352.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值