在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

如何利用FPGA設(shè)計一個跨時鐘域的同步策略?

電子工程師 ? 來源:未知 ? 作者:工程師李察 ? 2018-09-01 08:29 ? 次閱讀

基于FPGA的數(shù)字系統(tǒng)設(shè)計中大都推薦采用同步時序的設(shè)計,也就是單時鐘系統(tǒng)。但是實際的工程中,純粹單時鐘系統(tǒng)設(shè)計的情況很少,特別是設(shè)計模塊與外圍芯片通信中,跨時鐘域的情況經(jīng)常不可避免。如果對跨時鐘域帶來的亞穩(wěn)態(tài)、采樣丟失、潛在邏輯錯誤等等一系列問題處理不當(dāng),將導(dǎo)致系統(tǒng)無法運行。本文總結(jié)出了幾種同步策略來解決跨時鐘域問題。

2 異步設(shè)計中的亞穩(wěn)態(tài)

觸發(fā)器是FPGA設(shè)計中最常用的基本器件。觸發(fā)器工作過程中存在數(shù)據(jù)的建立(setup)和保持(hold)時間。對于使用上升沿觸發(fā)的觸發(fā)器來說,建立時間就是在時鐘上升沿到來之前,觸發(fā)器數(shù)據(jù)端數(shù)據(jù)保持穩(wěn)定的最小時間。而保持時間是時鐘上升沿到來之后,觸發(fā)器數(shù)據(jù)端數(shù)據(jù)還應(yīng)該繼續(xù)保持穩(wěn)定的最小時間。我們把這段時間成為setup-hold時間(如圖1所示)。在這個時間參數(shù)內(nèi),輸入信號在時鐘的上升沿是不允許發(fā)生變化的。如果輸入信號在這段時間內(nèi)發(fā)生了變化,輸出結(jié)果將是不可知的,即亞穩(wěn)態(tài) (Metastability)。

如何利用FPGA設(shè)計一個跨時鐘域的同步策略?

一個信號在過渡到另一個時鐘域時,如果僅僅用一個觸發(fā)器將其鎖存,那么采樣的結(jié)果將可能是亞穩(wěn)態(tài)。這也就是信號在跨時鐘域時應(yīng)該注意的問題。如圖2所示。

如何利用FPGA設(shè)計一個跨時鐘域的同步策略?

信號dat經(jīng)過一個鎖存器的輸出數(shù)據(jù)為a_dat.用時鐘b_clk進行采樣的時候,如果a_dat正好在b_clk的setup-hold時間內(nèi)發(fā)生變化,此時b_ dat就既不是邏輯“1”,也不是邏輯“0”,而是處于中間狀態(tài)。經(jīng)過一段時間之后,有可能回升到高電平,也有可能降低到低電平。輸出信號處于中間狀態(tài)到恢復(fù)為邏輯“1”或邏輯“0”的這段時間,我們稱之為亞穩(wěn)態(tài)時間。

觸發(fā)器進入亞穩(wěn)態(tài)的時間可以用參數(shù)MTBF(Mean Time Between Failures)來描述,MTBF即觸發(fā)器采樣失敗的時間間隔,表示為:

如何利用FPGA設(shè)計一個跨時鐘域的同步策略?

其中fclock表示系統(tǒng)時鐘頻率,fdata代表異步輸入信號的頻率,tmet代表不會引起故障的最長亞穩(wěn)態(tài)時間,C1和C2分別為與器件特性相關(guān)的常數(shù)。如果MTBF很大,就認(rèn)為這個設(shè)計在實際工作中是能夠正常運行的,不會因為亞穩(wěn)態(tài)導(dǎo)致整個系統(tǒng)的失效。當(dāng)觸發(fā)器處于亞穩(wěn)態(tài),且處于亞穩(wěn)態(tài)的時間超過了一個時鐘周期,這種不確定的狀態(tài)還會影響到下一級的觸發(fā)器,最終導(dǎo)致連鎖反應(yīng),從而使整個系統(tǒng)功能失常。

3 同步策略

在異步設(shè)計中,完全避免亞穩(wěn)態(tài)是不可能的。因此,設(shè)計的基本思路應(yīng)該是:首先盡可能減少出現(xiàn)亞穩(wěn)態(tài)的可能性,其次是盡可能減少出現(xiàn)亞穩(wěn)態(tài)并給系統(tǒng)帶來危害的可能性。以下是根據(jù)實際工作總結(jié)出來的幾種同步策略。

3.1 雙鎖存器法

為了避免進入亞穩(wěn)態(tài),應(yīng)當(dāng)使參數(shù)MTBF盡可能大。通常采用的方法是雙鎖存器法,即在一個信號進入另一個時鐘域之前,將該信號用兩個鎖存器連續(xù)鎖存兩次(如圖3所示)。理論研究表明這種設(shè)計可以將出現(xiàn)亞穩(wěn)態(tài)的幾率降低到一個很小的程度,但這種方法同時帶來了對輸入信號的一級延時,需要在設(shè)計時鐘的時候加以注意。

對于上面的雙鎖存器法,如果a_clk的頻率比b_clk的頻率高,將可能出現(xiàn)因為dat變化太快,而使b_clk無法采樣的問題。即在信號從快時鐘域向慢時鐘域過渡的時候,如果信號變化太快,慢時鐘將可能無法對該信號進行正確的采樣,所以在使用雙鎖存器法的時候,應(yīng)該使原始信號保持足夠長的時間,以便另一個時鐘域的鎖存器可以正確地對其進行采樣。

3.2 結(jié)繩法

由于雙鎖存器法在快時鐘域向慢時鐘域過渡中可能存在采樣失效的問題,我們引入了一種安全的跨時鐘域的方法:結(jié)繩法。結(jié)繩法適合任何時鐘域的過渡(clk1,clk2的頻率和相位關(guān)系可以任意選定),如圖4所示。

圖4中的_clk1表示該信號屬于clk1時鐘域,_clk2的信號表示該信號屬于clk2時鐘域。在兩次src_req_clk1之間被src_vld_clk1結(jié)繩(Pluse2Toggle)。將src_vld-clk1用雙鎖存器同步以后,該信號轉(zhuǎn)換為dst_req_clk2(Toggle2Pluse)。同理,用dst_vld_clk2將dat_req_clk2結(jié)繩,dst_vld_clk2表明在clk2時鐘域中,src_dat_clk1已經(jīng)可以進行正確的采樣了。最后將dst_vld_clk2轉(zhuǎn)換為dst_ack_clk1(Synchronizer and Toggle2Pluse)。dst_ack_clk表明src_dat_clk1已經(jīng)被clk2正確采樣了,此后clk1時鐘域就可以安全地傳輸下一個數(shù)據(jù)了。可以看出,結(jié)繩法的關(guān)鍵是將信號結(jié)繩以后,使其保持足夠長的時間,以便另一個時鐘可以正確采樣。圖5描述了結(jié)繩法的具體實現(xiàn),主要包括3個基本單元:Pluse2Toggle、Synchronizer和Toggle2Pluse.

Pluse2Toggle模塊負(fù)責(zé)將兩個脈沖信號結(jié)繩,即將單脈沖信號延長;Synchronizer模塊用雙鎖存器法將得到的信號過渡到另一個時鐘域;Toggle2Pluse模塊與Pluse2Toggle功能相對,即將延長的脈沖信號還原為單脈沖,這里用到了異或門。整體的設(shè)計思想就是用Pluse2Toggle將信號延長,用Synchronizer過渡,再用Toggle2Pluse還原,以保證另一個時鐘域可以正確采樣,而接收方用相反的流程送回響應(yīng)信號。

結(jié)繩法可以解決快時鐘域向慢時鐘域過渡的問題,且適用的范圍很廣。但是結(jié)繩法實現(xiàn)較復(fù)雜,在設(shè)計要求較高的場合應(yīng)該慎用。

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

    關(guān)注

    1629

    文章

    21736

    瀏覽量

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

    關(guān)注

    14

    文章

    2000

    瀏覽量

    61158
  • 脈沖信號
    +關(guān)注

    關(guān)注

    6

    文章

    399

    瀏覽量

    36973

原文標(biāo)題:怎樣利用FPGA設(shè)計一個跨時鐘域的同步策略?

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    如何處理好FPGA設(shè)計中時鐘問題?

    時鐘處理是 FPGA 設(shè)計中經(jīng)常遇到的問題,而如何處理好時鐘
    發(fā)表于 09-22 10:24

    FPGA初學(xué)者的必修課:FPGA時鐘處理3大方法

    時鐘處理是FPGA設(shè)計中經(jīng)常遇到的問題,而如何處理好時鐘
    發(fā)表于 03-04 09:22

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

    時鐘處理是FPGA設(shè)計中經(jīng)常遇到的問題,而如何處理好時鐘
    發(fā)表于 07-29 06:19

    FPGA時鐘處理簡介

    (10)FPGA時鐘處理1.1 目錄1)目錄2)FPGA簡介3)Verilog HDL簡介4)FPG
    發(fā)表于 02-23 07:47

    時鐘信號的幾種同步方法研究

    時鐘信號的同步方法應(yīng)根據(jù)源時鐘與目標(biāo)時鐘的相位關(guān)系、該信號的時間寬度和多個
    發(fā)表于 05-09 15:21 ?63次下載
    <b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>信號的幾種<b class='flag-5'>同步</b>方法研究

    FPGA界最常用也最實用的3種時鐘處理的方法

    時鐘處理是FPGA設(shè)計中經(jīng)常遇到的問題,而如何處理好時鐘
    發(fā)表于 11-15 20:08 ?1.4w次閱讀

    怎樣利用FPGA設(shè)計時鐘同步策略

    觸發(fā)器是FPGA設(shè)計中最常用的基本器件。觸發(fā)器工作過程中存在數(shù)據(jù)的建立(setup)和保持(hold)時間。對于使用上升沿觸發(fā)的觸發(fā)器來說,建立時間就是在時鐘上升沿到來之前,觸發(fā)器數(shù)據(jù)端數(shù)據(jù)保持穩(wěn)定
    發(fā)表于 08-18 09:50 ?1937次閱讀
    怎樣<b class='flag-5'>利用</b><b class='flag-5'>FPGA</b>設(shè)計<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>跨</b><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 ?3359次閱讀

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

    時鐘處理是 FPGA 設(shè)計中經(jīng)常遇到的問題,而如何處理好時鐘
    的頭像 發(fā)表于 12-05 16:41 ?1652次閱讀

    (10)FPGA時鐘處理

    (10)FPGA時鐘處理1.1 目錄1)目錄2)FPGA簡介3)Verilog HDL簡介4)FPG
    發(fā)表于 12-29 19:40 ?7次下載
    (10)<b class='flag-5'>FPGA</b><b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理

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

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

    FPGA時鐘處理方法()

    時鐘FPGA設(shè)計中最容易出錯的設(shè)計模塊,而且時鐘
    的頭像 發(fā)表于 05-25 15:06 ?1996次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>跨</b><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 ?1041次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理方法(二)

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

    fpga時鐘通信時,慢時鐘如何讀取快時鐘發(fā)送過來的數(shù)據(jù)? 在
    的頭像 發(fā)表于 10-18 15:23 ?1073次閱讀
    主站蜘蛛池模板: 在线免费观看一区二区三区| va在线| 欧美一区二区三区综合色视频| 欧美福利网| 五月天婷婷网址| free性乌克兰高清videos| 四虎影视永久在线观看| 欧美一区二区三区免费高| 亚色综合| 永久免费观看黄网站| 日韩有色| 天天爽天天狼久久久综合| 国产欧美日韩va| 免费观看激色视频网站bd| 四虎影视网站| 在线观看免费视频资源| 黄色欧美| 校园激情综合网| 爱爱永久免费视频网站| 日本三级456| 1区2区| 国产嫩草影院精品免费网址| 国产精品美女久久久久网站| 五月婷婷色视频| 在线永久免费播放视频| 一区二区三区www| 四虎影视永久地址| 五月天婷婷在线观看视频| 欧美不卡一区| 狠狠色噜噜狠狠狠狠米奇7777| 国产女在线| 四虎影院永久网站| 天天爽天天干| 一级毛片子| www.国产一区二区三区| 一级毛片日韩a欧美| 美女黄页黄频| 手机亚洲第一页| 一久久| 激情天堂| 国产yw855.c免费视频|