相關訊號命名時指明所屬時鐘域。
分塊化設計
同步模組不需要做靜態時序分析,但要保證滿足保持時間要求。
控制訊號的傳輸
最常見的就是多級同步器
缺點是增加了電路的整體延時。
資料訊號的傳輸同頻零相位差時鐘
兩時鐘完全相同,視為單時鐘。
同頻恆定相位差時鐘
傳輸訊號寬度足夠,能被採到即刻。
非同頻可變相位差時鐘
整數倍時鐘
非整數倍時鐘
傳送器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...