欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

跨時(shí)鐘域的解決方案

sanyue7758 ? 來源:AriesOpenFPGA ? 2024-01-08 09:42 ? 次閱讀

導(dǎo)言

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

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

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

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

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

同步跨時(shí)鐘域信號

對大多數(shù)初學(xué)者來講,當(dāng)我們遇到CDCs時(shí),有經(jīng)驗(yàn)的工程師會(huì)告訴我們“打兩拍”,即讓信號通過兩個(gè) flip-flops,每個(gè)flip-flop都由新時(shí)鐘域的時(shí)鐘驅(qū)動(dòng)(如下圖)。第一個(gè)觸發(fā)器出現(xiàn)亞穩(wěn)態(tài)的概率很高,但第二個(gè)觸發(fā)器的輸出亞穩(wěn)態(tài)的概率就會(huì)低得多。當(dāng)然更多的flip-flops會(huì)讓亞穩(wěn)態(tài)的概率進(jìn)一步下降,但一般下降的概率差距不會(huì)太大,如何選擇取決于設(shè)計(jì)者自己。但并非多數(shù)CDC問題都能用這種簡單方法,這種設(shè)計(jì)適用于舊時(shí)鐘域比新時(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中一個(gè)常見的例子就是異步復(fù)位,這個(gè)問題我在“FPGA復(fù)位信號設(shè)計(jì)討論“一文中有詳細(xì)的表述,這里簡單講解,對于初學(xué)者而言,不太建議用異步復(fù)位,盡管他們各有優(yōu)劣,但至少對FPGA設(shè)計(jì)者而言,這個(gè)建議應(yīng)該是有效的,即使是Xilinx官方也同樣建議使用同步復(fù)位(UG949)。

但有些狀態(tài)下可能同步復(fù)位無效,比如在低功耗設(shè)計(jì)中,時(shí)鐘可能在復(fù)位前就已經(jīng)被“無效”,那么異步復(fù)位自然成為一個(gè)選擇。異步復(fù)位關(guān)鍵點(diǎn)不在進(jìn)入復(fù)位狀態(tài),而在于移除復(fù)位,因?yàn)橐瞥隣顟B(tài)可能會(huì)進(jìn)入亞穩(wěn)態(tài),除了“FPGA復(fù)位信號設(shè)計(jì)討論”一文,大家同樣可以參閱我翻譯的經(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中,低電平似乎更加常見。

跨時(shí)鐘握手

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

FIFO

FIFO網(wǎng)上的文章特別多,具體的設(shè)計(jì)細(xì)節(jié)有很多需要討論的地方,但對于跨時(shí)鐘域而言,F(xiàn)IFO幾乎是最方便的數(shù)據(jù)傳輸方式。這里不展開講,之前我寫過關(guān)于FIFO的相關(guān)文章,不是特別詳細(xì),接下來會(huì)有詳細(xì)的關(guān)于FIFO的計(jì)劃,在此之前,大家可以看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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA設(shè)計(jì)
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    26606
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    389

    瀏覽量

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

    關(guān)注

    0

    文章

    57

    瀏覽量

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

    關(guān)注

    14

    文章

    2003

    瀏覽量

    61320
  • 時(shí)鐘域
    +關(guān)注

    關(guān)注

    0

    文章

    52

    瀏覽量

    9569

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    vivado約束案例:時(shí)鐘路徑分析報(bào)告

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

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

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

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

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

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

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

    cdc路徑方案幫您解決時(shí)鐘難題

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

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

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

    揭秘FPGA時(shí)鐘處理的三大方法

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

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

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

    介紹3種方法時(shí)鐘處理方法

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

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

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

    FPGA時(shí)鐘處理方法(一)

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

    FPGA時(shí)鐘處理方法(二)

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

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

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

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

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