chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

跨時鐘域的解決方案

sanyue7758 ? 來源:AriesOpenFPGA ? 2024-01-08 09:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

導(dǎo)言

在很久之前便陸續(xù)談過亞穩(wěn)態(tài),F(xiàn)IFO,復(fù)位的設(shè)計。本次亦安做一個簡單的總結(jié),從宏觀上給大家展示跨時鐘域的解決方案。

什么是亞穩(wěn)態(tài)?

對大多數(shù)工程師來講,亞穩(wěn)態(tài)是非常難以追蹤的,因為它具有不確定性,在相對規(guī)范的設(shè)計下,如果仍然發(fā)生這個問題,那么可能非常難以復(fù)現(xiàn)異常。簡單來講,當(dāng)觸發(fā)器不滿足建立時間和保持時間要求時,就會導(dǎo)致亞穩(wěn)態(tài)。亞穩(wěn)態(tài)出現(xiàn)時,觸發(fā)器既不是高邏輯也不是低邏輯,后續(xù)電路則可能讀取為0或者1(不確定狀態(tài)),導(dǎo)致電路邏輯做出不符合當(dāng)前事物邏輯的事情。

對于數(shù)字設(shè)計人員來講,只要信號從一個時鐘域跨越到另一個時鐘域,那么就可能發(fā)生亞穩(wěn)態(tài)。我們稱為“跨時鐘域”即“Clock Domain Crossing”,或CDC

所以今天主要簡單了解如何處理CDC這些基礎(chǔ)問題。

同步跨時鐘域信號

對大多數(shù)初學(xué)者來講,當(dāng)我們遇到CDCs時,有經(jīng)驗的工程師會告訴我們“打兩拍”,即讓信號通過兩個 flip-flops,每個flip-flop都由新時鐘域的時鐘驅(qū)動(如下圖)。第一個觸發(fā)器出現(xiàn)亞穩(wěn)態(tài)的概率很高,但第二個觸發(fā)器的輸出亞穩(wěn)態(tài)的概率就會低得多。當(dāng)然更多的flip-flops會讓亞穩(wěn)態(tài)的概率進一步下降,但一般下降的概率差距不會太大,如何選擇取決于設(shè)計者自己。但并非多數(shù)CDC問題都能用這種簡單方法,這種設(shè)計適用于舊時鐘域比新時鐘域慢的多的情況。經(jīng)典的可配置的代碼如下。

f01ed170-ad75-11ee-8b88-92fbcf53809c.png

//Language:Verilog-2001

`resetall
`timescale1ns/1ps
`default_nettypenone

/*
*Synchronizesanasyncronoussignaltoagivenclockbyusingapipelineof
*tworegisters.
*/
modulesync_signal#(
parameterWIDTH=1,//widthoftheinputandoutputsignals
parameterN=2//depthofsynchronizer
)(
inputwireclk,
inputwire[WIDTH-1:0]in,
outputwire[WIDTH-1:0]out
);

reg[WIDTH-1:0]sync_reg[N-1:0];

/*
*Thesynchronizedoutputisthelastregisterinthepipeline.
*/
assignout=sync_reg[N-1];

integerk;

always@(posedgeclk)begin
sync_reg[0]<=?in;
????for?(k?=?1;?k?

異步復(fù)位同步釋放

CDC中一個常見的例子就是異步復(fù)位,這個問題我在“FPGA復(fù)位信號設(shè)計討論“一文中有詳細(xì)的表述,這里簡單講解,對于初學(xué)者而言,不太建議用異步復(fù)位,盡管他們各有優(yōu)劣,但至少對FPGA設(shè)計者而言,這個建議應(yīng)該是有效的,即使是Xilinx官方也同樣建議使用同步復(fù)位(UG949)。

但有些狀態(tài)下可能同步復(fù)位無效,比如在低功耗設(shè)計中,時鐘可能在復(fù)位前就已經(jīng)被“無效”,那么異步復(fù)位自然成為一個選擇。異步復(fù)位關(guān)鍵點不在進入復(fù)位狀態(tài),而在于移除復(fù)位,因為移除狀態(tài)可能會進入亞穩(wěn)態(tài),除了“FPGA復(fù)位信號設(shè)計討論”一文,大家同樣可以參閱我翻譯的經(jīng)典論文“同步復(fù)位與異步復(fù)位”。經(jīng)典的代碼如下所示,但請注意區(qū)別此處代碼和“打兩拍“的區(qū)別。

//Language:Verilog-2001

`resetall
`timescale1ns/1ps
`default_nettypenone

/*
*Synchronizesanactive-highasynchronousresetsignaltoagivenclockby
*usingapipelineofNregisters.
*/
modulesync_reset#
(
//depthofsynchronizer
parameterN=2
)
(
inputwireclk,
inputwirerst,
outputwireout
);

(*srl_style="register"*)
reg[N-1:0]sync_reg={N{1'b1}};

assignout=sync_reg[N-1];

always@(posedgeclkorposedgerst)begin
if(rst)begin
sync_reg<=?{N{1'b1}};
????end?else?begin
????????sync_reg?<=?{sync_reg[N-2:0],?1'b0};
????end
end

endmodule

`resetall

很多人爭論高電平復(fù)位有效好還是低電平復(fù)位有效好,一般情況下我常見低電平復(fù)位有效,但高電平復(fù)位有效也不是沒有,一般認(rèn)為在FPGA中區(qū)別不是太大,但在ASIC中,低電平似乎更加常見。

跨時鐘握手

有時需要一種方法來處理CDC,例如從慢時鐘到快時鐘,從快時鐘到慢時鐘,這時需要:握手信號,在“AXI4協(xié)議邏輯規(guī)范以及BUG處理”一文寫過握手的注意點。握手的詳細(xì)技術(shù)點感興趣的朋友可以網(wǎng)上找相關(guān)資料。

FIFO

FIFO網(wǎng)上的文章特別多,具體的設(shè)計細(xì)節(jié)有很多需要討論的地方,但對于跨時鐘域而言,F(xiàn)IFO幾乎是最方便的數(shù)據(jù)傳輸方式。這里不展開講,之前我寫過關(guān)于FIFO的相關(guān)文章,不是特別詳細(xì),接下來會有詳細(xì)的關(guān)于FIFO的計劃,在此之前,大家可以看Clifford E. Cummings經(jīng)典論文,他的論文真的很推薦。

http://www.sunburst-design.com/papers/CummingsSNUG2008Boston_CDC.pdf

f038a370-ad75-11ee-8b88-92fbcf53809c.png








審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA設(shè)計
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    27364
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    402

    瀏覽量

    44821
  • CDC
    CDC
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    18224
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2039

    瀏覽量

    62148
  • 時鐘域
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    9792

原文標(biāo)題:跨時鐘域的幾種基本處理方法

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    FPGA設(shè)計中解決時鐘的三大方案

    時鐘處理是FPGA設(shè)計中經(jīng)常遇到的問題,而如何處理好時鐘間的數(shù)據(jù),可以說是每個FPGA初
    的頭像 發(fā)表于 11-21 11:13 ?4537次閱讀
    FPGA設(shè)計中解決<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>的三大<b class='flag-5'>方案</b>

    vivado約束案例:時鐘路徑分析報告

    時鐘路徑分析報告分析從一個時鐘(源時鐘)跨越到另一個
    的頭像 發(fā)表于 11-27 11:11 ?6242次閱讀
    vivado約束案例:<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>路徑分析報告

    時鐘控制信號傳輸設(shè)計方案

    1、時鐘與亞穩(wěn)態(tài) 時鐘通俗地講,就是模塊之間有數(shù)據(jù)交互,但是模塊用的不是同一個
    發(fā)表于 10-16 15:47 ?1287次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>控制信號傳輸設(shè)計<b class='flag-5'>方案</b>

    關(guān)于時鐘信號的處理方法

    我在知乎看到了多bit信號時鐘的問題,于是整理了一下自己對于時鐘信號的處理方法。
    的頭像 發(fā)表于 10-09 10:44 ?7176次閱讀

    如何處理好FPGA設(shè)計中時鐘間的數(shù)據(jù)

    時鐘處理是FPGA設(shè)計中經(jīng)常遇到的問題,而如何處理好時鐘間的數(shù)據(jù),可以說是每個FPGA初
    發(fā)表于 07-29 06:19

    cdc路徑方案幫您解決時鐘難題

    這一章介紹一下CDC也就是時鐘可能存在的一些問題以及基本的時鐘處理方法。
    的頭像 發(fā)表于 11-30 06:29 ?7623次閱讀
    cdc路徑<b class='flag-5'>方案</b>幫您解決<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>難題

    關(guān)于FPGA中時鐘的問題分析

    時鐘問題(CDC,Clock Domain Crossing )是多時鐘設(shè)計中的常見現(xiàn)象。在FPGA領(lǐng)域,互動的異步時鐘
    發(fā)表于 08-19 14:52 ?3669次閱讀

    揭秘FPGA時鐘處理的三大方法

    時鐘處理是 FPGA 設(shè)計中經(jīng)常遇到的問題,而如何處理好時鐘間的數(shù)據(jù),可以說是每個 FP
    的頭像 發(fā)表于 12-05 16:41 ?1979次閱讀

    關(guān)于時鐘的詳細(xì)解答

    每一個做數(shù)字邏輯的都繞不開時鐘處理,談一談SpinalHDL里用于時鐘處理的一些手段方法
    的頭像 發(fā)表于 04-27 10:52 ?4629次閱讀
    關(guān)于<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>的詳細(xì)解答

    介紹3種方法時鐘處理方法

    時鐘處理是FPGA設(shè)計中經(jīng)常遇到的問題,而如何處理好時鐘間的數(shù)據(jù),可以說是每個FPGA初
    的頭像 發(fā)表于 09-18 11:33 ?2.3w次閱讀
    介紹3種方法<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理方法

    時鐘電路設(shè)計總結(jié)

    時鐘操作包括同步時鐘操作和異步
    的頭像 發(fā)表于 05-18 09:18 ?1023次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>電路設(shè)計總結(jié)

    FPGA時鐘處理方法(一)

    時鐘是FPGA設(shè)計中最容易出錯的設(shè)計模塊,而且一旦時鐘出現(xiàn)問題,定位排查會非常困難,因為
    的頭像 發(fā)表于 05-25 15:06 ?2524次閱讀
    FPGA<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理方法(一)

    FPGA時鐘處理方法(二)

    上一篇文章已經(jīng)講過了單bit時鐘的處理方法,這次解說一下多bit的時鐘方法。
    的頭像 發(fā)表于 05-25 15:07 ?1332次閱讀
    FPGA<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理方法(二)

    fpga時鐘通信時,慢時鐘如何讀取快時鐘發(fā)送過來的數(shù)據(jù)?

    fpga時鐘通信時,慢時鐘如何讀取快時鐘發(fā)送過來的數(shù)據(jù)? 在FPGA設(shè)計中,通常需要
    的頭像 發(fā)表于 10-18 15:23 ?1462次閱讀

    如何處理時鐘這些基礎(chǔ)問題

    對于數(shù)字設(shè)計人員來講,只要信號從一個時鐘跨越到另一個時鐘,那么就可能發(fā)生亞穩(wěn)態(tài)。我們稱為“時鐘
    發(fā)表于 01-08 09:39 ?988次閱讀
    如何處理<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>這些基礎(chǔ)問題