處理多個時鐘

2022-09-21 12:15:07 字數 1240 閱讀 8491

相關訊號命名時指明所屬時鐘域。

分塊化設計

同步模組不需要做靜態時序分析,但要保證滿足保持時間要求。

控制訊號的傳輸

最常見的就是多級同步器

缺點是增加了電路的整體延時。

資料訊號的傳輸同頻零相位差時鐘

兩時鐘完全相同,視為單時鐘。

同頻恆定相位差時鐘

傳輸訊號寬度足夠,能被採到即刻。

非同頻可變相位差時鐘

整數倍時鐘

非整數倍時鐘

傳送器x將資料放到資料匯流排上,並發出xreq訊號,表示有效資料已經傳送

把xreq訊號同步到y時鐘域

接收器y在識別到xreq同步後的訊號yreq後,所存資料線上的訊號

接收器發出確認訊號yack,表示已接收。

接收訊號yack同步到x時鐘域成為xack

傳送器識別到同步後的xack後,傳送下乙個資料。

傳輸單個資料延遲比較大

判滿:寫操作使兩個指標在下個時鐘保持相等

也可用計數器來對fifo寬度進行計數,這種方法雖然原理簡單,但是會增加額外的資源開銷(比較器)來判斷滿和空。這最終會降低fifo操作的最高頻率。

非同步fifo內部讀寫指標屬於不同時鐘域,因此判滿判空時不能直接比較。

如fff變為000,可能會採到101、110等值。

採用格雷碼計數。

例如,如果計數器從1010變為1011,取樣邏輯要麼讀到1010,要麼讀到1011,但不會出現其他值。

格雷碼計數器

Linux時鐘處理

linux時鐘處理 常用的修改linux時間的命令 date,clock,hwclock date 修改系統當前的時間 root v52540ed2418 etc date mon feb 6 02 45 42 est 2012 root v52540ed2418 etc date s 2012 2...

時鐘中斷處理函式

以前的中斷處理函式只做為測試用,其實問題還很多,我把它放到了乙個專門的檔案中,kernel system call.s 如下 globl timer interrupt timer interrupt incl jiffies movb 0x20,al outb al,0x20 call do ti...

跨時鐘域處理

需要做的事情 使能訊號txe to eth由時鐘122.88m時鐘輸出 另一使能訊號vde dv由25m時鐘輸出,計算兩個使能訊號之間的時間間隔,即兩個訊號上公升沿之間的時鐘計數。由於兩個訊號屬於不同的時鐘域,因此要先進行跨時鐘域處理,這裡對vde dv進行處理 在122.88m時鐘下將vde dv...