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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

多位寬數據通過握手方式跨時鐘域

FPGA技術驛站 ? 來源:FPGA技術驛站 ? 作者:FPGA技術驛站 ? 2023-05-06 09:22 ? 次閱讀

對于多位寬數據,我們可以采用握手方式實現跨時鐘域操作。該方式可直接使用xpm_cdc_handshake實現,如下圖所示。xpm_cdc_handshake提供了6個參數

其中DEST_EXT_HSK用于決定握手信號是內部生成還是來自于該模塊的外部;DEST_SYNC_FF決定了目的端控制信號對應的級聯觸發器個數;INIT_SYNC_FF決定了仿真時是否使用觸發器的初始值;SIM_ASSERT_CHK用于判定是否檢查仿真過程中可能的潛在問題;SRC_SYNC_FF決定了源端控制信號對應的級聯觸發器個數;WIDTH決定了傳輸數據的位寬。

8b508748-eb83-11ed-90ce-dac502259ad0.png

假定DEST_EXT_HSK為0(握手信號由內部生成),DEST_SYNC_FF和SRC_SYNC_FF均為2,WIDTH為4,綜合后的電路結果如下圖所示。可以看到設計使用了xpm_cdc_single,用于實現控制信號src_send的跨時鐘域操作,這也就意味著src_send為高有效時要確保可以被接收端時鐘穩定地采樣到至少兩次。

同時也不難理解SRC_SYNC_FF決定了src_send從發送時鐘域到接收時鐘域所需的級聯觸發器個數。下面第二張圖片就顯示了SRC_SYNC_FF為4時的電路。下面第三章圖顯示了DEST_SYNC_FF為4時的電路。

8b61df66-eb83-11ed-90ce-dac502259ad0.png8b7baf68-eb83-11ed-90ce-dac502259ad0.png8b9283be-eb83-11ed-90ce-dac502259ad0.png

我們單獨把控制信號src_send提取出來,看看src_send是如何從發送時鐘域到接收時鐘域然后又回到發送時鐘域生成src_rcv信號,如下圖所示。圖中淡紫色為接收時鐘,淺藍色為發送時鐘,src_send從輸入到最終產生src_rcv信號共經歷了6個觸發器,兩次跨時鐘域操作。src_send為高時,表明發送端有待發送數據,src_rcv為高時表明接收端已接收到數據,意味著跨時鐘域操作完成。

8ba83308-eb83-11ed-90ce-dac502259ad0.png

從約束層面看,該模塊使用了set_false_path,set_max_delay和set_bus_skew三種約束,如下圖所示。但其實set_max_delay和set_bus_skew的延遲值都很大,所以可以認為與set_max_delay等效。

8bc07bc0-eb83-11ed-90ce-dac502259ad0.png

從仿真角度看,我們先看從慢時鐘域到快時鐘域,如下圖所示。這里需要注意的是dest_req輸出脈寬為一個接收時鐘域脈寬,故該信號可用于最終數據(跨時鐘域之后)的有效標記信號。

8be8cf6c-eb83-11ed-90ce-dac502259ad0.png

同樣,該模塊也支持從快時鐘域到慢時鐘域的跨時鐘域的操作,如下圖所示。

8bf52faa-eb83-11ed-90ce-dac502259ad0.png

既然是握手方式,那么就意味著每發送一個數據,就要發送一個與之同步的有效標記信號(src_send),當接收端接收到該信號時,開始處理,接收完畢發送src_rcv給發送端,表明數據被接收到。這樣看來,握手方式因為“握手”的存在而不能連續發送數據,如下圖所示,可以看到連續發送造成數據丟失。

8c034dce-eb83-11ed-90ce-dac502259ad0.png

從綜合后的仿真來看,進一步理解“握手”,如下圖所示,我們將數據路徑上發送端和接收端觸發器的使能信號添加到波形窗口里。其中p_0_in為發送端使能信號,對應的輸出數據為src_hsdata_ff,dest_hsdata_en為接收端使能信號。

8c15f29e-eb83-11ed-90ce-dac502259ad0.png

如果參數DEST_EXT_HSK為1,表明外部提供接收應答信號,綜合結果如下圖所示。圖中藍色高亮為信號dest_ack,該信號經跨時鐘域處理輸出src_rcv給接收端,這正是與內部產生握手信號電路的區別。

8c27c32a-eb83-11ed-90ce-dac502259ad0.png

綜上所述,可以看到“握手”方式需要發送端和接收端通過握手信號src_send和src_rcv或dest_ack來表明發送端有數據等待發送或接收端已接收到數據,“握手”一來一回就意味著發送端不能每個時鐘周期都發送數據,發送數據率必然低于時鐘頻率。同時,握手方式也無法對待發送數據進行緩存。好處是這種方式僅僅消耗觸發器和查找表資源,資源用量比較少,電路比較簡單。


審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21742

    瀏覽量

    603537
  • 時鐘
    +關注

    關注

    11

    文章

    1734

    瀏覽量

    131496
  • 觸發器
    +關注

    關注

    14

    文章

    2000

    瀏覽量

    61161
  • SRC
    SRC
    +關注

    關注

    0

    文章

    60

    瀏覽量

    17995
  • 時鐘域
    +關注

    關注

    0

    文章

    52

    瀏覽量

    9536

原文標題:跨時鐘域電路設計(6):多位寬數據通過握手方式跨時鐘域

文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何處理好FPGA設計中時鐘問題?

    以手到擒來。這里介紹的三種方法時鐘處理方法如下:打兩拍;異步雙口 RAM;格雷碼轉換。01方法一:打兩拍大家很清楚,處理時鐘
    發表于 09-22 10:24

    三種時鐘處理的方法

    的三種方法時鐘處理方法如下:  1. 打兩拍;  2. 異步雙口RAM;  3. 格雷碼轉換。  方法一:打兩拍  大家很清楚,處理時鐘
    發表于 01-08 16:55

    如何處理好FPGA設計中時鐘間的數據

    時鐘處理是FPGA設計中經常遇到的問題,而如何處理好時鐘間的
    發表于 07-29 06:19

    如何處理好時鐘間的數據

    時鐘處理是什么意思?如何處理好時鐘間的數據
    發表于 11-01 07:44

    看看Stream信號里是如何做時鐘握手

    邏輯出身的農民工兄弟在面試時總難以避免“時鐘”的拷問,在諸多時鐘的方法里,
    發表于 07-07 17:25

    CDC單bit脈沖時鐘的處理介紹

    單bit 脈沖時鐘處理 簡要概述: 在上一篇講了總線全握手時鐘處理,本文講述單bit脈沖
    的頭像 發表于 03-22 09:54 ?3526次閱讀

    總線半握手時鐘處理

    總線半握手時鐘處理 簡要概述: 在上一篇講了單bit脈沖同步器時鐘處理,本文講述控制信號基
    的頭像 發表于 04-04 12:32 ?2870次閱讀
    總線半<b class='flag-5'>握手</b><b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>處理

    關于時鐘的詳細解答

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

    單位信號如何時鐘

    單位(Single bit)信號即該信號的位為1,通常控制信號居多。對于此類信號,如需時鐘可直接使用xpm_cdc_single
    的頭像 發表于 04-13 09:11 ?1328次閱讀

    時鐘電路設計:多位數據通過FIFO時鐘

    FIFO是實現多位數據的異步時鐘操作的常用方法,相比于
    的頭像 發表于 05-11 14:01 ?3076次閱讀
    <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>FIFO<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>

    時鐘電路設計總結

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

    FPGA時鐘處理方法(一)

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

    FPGA時鐘處理方法(二)

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

    時鐘電路設計:單位信號如何時鐘

    單位(Single bit)信號即該信號的位為1,通常控制信號居多。對于此類信號,如需時鐘可直接使用xpm_cdc_single,如
    的頭像 發表于 08-16 09:53 ?1353次閱讀
    <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>

    fpga時鐘通信時,慢時鐘如何讀取快時鐘發送過來的數據

    fpga時鐘通信時,慢時鐘如何讀取快時鐘發送過來的數據? 在FPGA設計中,通常需要
    的頭像 發表于 10-18 15:23 ?1076次閱讀
    主站蜘蛛池模板: 国产色av| 午夜久久久精品| 免费在线成人| 天天操天天干天搞天天射| 在线看片福利| 一本到视频在线| 午夜 在线播放| 手机看片国产在线| 美女牲交视频一级毛片| 加勒比在线视频| 1300部小u女视频免费| 黄网页在线观看| 同性同男小说肉黄| 作爱在线观看| 曰本黄色一级| 四虎国产精品永久在线| 日韩免费一区| 久久综合九色综合精品| 国产片91人成在线观看| 欧美性生交xxxxx久久久| 欧美在线小视频| 久久人成| 中文字幕在线观看你懂的| 天天干天天色天天射| 人人九九精品| 四虎免费看黄| 美女免费视频一区二区三区| 一个色中文字幕| 人人爱人人插| 欧美一区二区三区性| 加勒比色综合| 午夜黄色毛片| 成人深夜视频| 美女视频一区二区| 四虎精品影院永久在线播放| 玖玖爱这里只有精品| 亚洲羞羞裸色私人影院| 国产小视频免费观看| 色香欲亚洲天天综合网| 四虎国产精品永久在线看| 国模谢心2013.05.06私拍|