色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

SpinalHDL里用于跨時鐘域處理的一些手段方法

FPGA之家 ? 來源:Spinal FPGA ? 作者:玉騏 ? 2022-07-11 10:51 ? 次閱讀
開篇立論

每一個做數字邏輯的都繞不開跨時鐘域處理,談一談SpinalHDL里用于跨時鐘域處理的一些手段方法。

打拍處理

跨時鐘域信號的打拍處理往往用于單比特信號或類似于格林碼這種信號的跨時鐘域處理。其邏輯電路很簡單。SpinalHDL提供了BufferCC用于實現這種跨時鐘域打拍處理方式:
BufferCC(input: T, init: T = null, bufferDepth: Int = 2)
bufferDepth可用于指定打拍級數。input信號的時鐘域為源時鐘域,BUfferCC調用的地方的時鐘域為目的時鐘域。

在日常的電路設計里,計數器是常見的DFX信號,有些情況下需要將一個時鐘域的DFX信號轉換到另一個時鐘域進行HPI讀取,這種情況也可以通過打拍進行處理,不過前提是需轉換成格林碼,如此在源時鐘域和目的時鐘域需分別做一次轉換與反轉換。但如果計數器采用格林碼進行計數則可以少進行一次轉換。SpinalHDL有提供一個GrayCounter方法用于生成格林碼計數器:
GrayCounter(width: Int, enable: Bool) 
提供一個小demo,GtayCounter+BufferCC:

ddc3355a-00c1-11ed-ba43-dac502259ad0.png

這里GrayCounter在時鐘域clkA中實現,通過BufferCC將其跨時鐘域至clkB,bufferDepth為3.Tips:BufferCC的第二個參數init數據類型是T,而T<:Data,即意味著init數據類型為“硬件”數據類型,因而上面init賦值需為U(0,8 bits)而不能直接寫0 》》脈沖信號處理脈沖信號的跨時鐘域處理,SpinalHDL提供了PulseCCByToggle方法:
PulseCCByToggle(input:Bool,clockIn:ClockDomain,clockOut:ClockDomain):Bool
握手處理

對于吞吐要求不是特別高的場合,跨時鐘域信號采用握手形式進行處理也是一種不錯的選擇。SpinalHDL有兩個抽象類型個人一直很喜歡:Stream,Flow。這兩種形式基本囊括了所有的信號交互行為,其也可以說是SpinalHDL lib庫的基石。針對跨時鐘域的握手處理,SpinalHDL有一個StreamCCByToggle可以使用:

StreamCCByToggle(input: Stream[T], inputClock: ClockDomain, outputClock: ClockDomain): Stream[T]

其輸入參數包含源時鐘域信號,源時鐘域,目的時鐘域,其返回一個目的時鐘域的Stream信號:

ddd37c80-00c1-11ed-ba43-dac502259ad0.png

這里srcIn隸屬于時鐘域clkA,destOut隸屬于時鐘域clkB。


除了StreamCCByToggle,SpinalHDL里還有一個FlowCCByToggle。由于Flow類型沒有反壓,因而從低時鐘域向高時鐘域進行傳輸則沒什么問題,但從高時鐘域向低時鐘域進行轉換則存在丟失數據的風險。


FIFO跨時鐘域緩存

對于高吞吐的多比特信號跨時鐘域處理,則往往采用FIFO的形式進行處理。在SpinalHDL里則有StreamFifoCC供使用:
val myFifo = StreamFifoCC(  dataType  = Bits(8 bits),  depth     = 128,  pushClock = clockA,  popClock  = clockB)myFifo.io.push << streamAmyFifo.io.pop>>streamB

審核編輯:湯梓紅


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

    關注

    48

    文章

    1032

    瀏覽量

    103314
  • 時鐘
    +關注

    關注

    11

    文章

    1735

    瀏覽量

    131571
  • 數字邏輯
    +關注

    關注

    0

    文章

    73

    瀏覽量

    16663

原文標題:跨時鐘域那點事兒

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    關于時鐘信號的處理方法

    我在知乎看到了多bit信號時鐘的問題,于是整理了下自己對于時鐘信號的
    的頭像 發表于 10-09 10:44 ?6266次閱讀

    三種時鐘處理方法

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

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

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

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

    一些,適用于追求高吞吐的場景。寫在最后邏輯處理很多總線都是基于Stream這種信號來實現的(如AXI4家族),通過上面的方法,可以很容易根
    發表于 07-07 17:25

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

    時鐘處理是FPGA設計中經常遇到的問題,而如何處理
    發表于 11-15 20:08 ?1.4w次閱讀

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

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

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

    時鐘處理是 FPGA 設計中經常遇到的問題,而如何處理
    的頭像 發表于 12-05 16:41 ?1662次閱讀

    SpinalHDL時鐘域中的定制與命名

    聊在SpinalHDL時鐘域中時鐘的定制與命名。 相較于Verilog,在SpinalHDL
    的頭像 發表于 03-22 10:14 ?2142次閱讀

    總線半握手時鐘處理

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

    關于時鐘的詳細解答

    個做數字邏輯的都繞不開時鐘處理,談SpinalH
    的頭像 發表于 04-27 10:52 ?4292次閱讀
    關于<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>的詳細解答

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

    時鐘處理是FPGA設計中經常遇到的問題,而如何處理
    的頭像 發表于 09-18 11:33 ?2.2w次閱讀
    介紹3種<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的時鐘信號處理——MCU

    問題,不過請注意,今后的這些關于異步信號處理的文 章將會重點從工程實踐的角度出發,以一些特權同學遇到過的典型案例的設計為依托,從代碼的角度來剖析一些特權同學認為經典的
    發表于 11-01 16:24 ?11次下載
    基于FPGA的<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>信號<b class='flag-5'>處理</b>——MCU

    三種時鐘處理方法

    時鐘處理是FPGA設計中經常遇到的問題,而如何處理
    的頭像 發表于 10-18 09:12 ?7885次閱讀

    FPGA時鐘處理方法()

    時鐘是FPGA設計中最容易出錯的設計模塊,而且時鐘
    的頭像 發表于 05-25 15:06 ?2025次閱讀
    FPGA<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時鐘處理方法(二)

    篇文章已經講過了單bit時鐘處理方法,這次解說
    的頭像 發表于 05-25 15:07 ?1050次閱讀
    FPGA<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>(二)
    主站蜘蛛池模板: 丰满少妇67194视频| 黑人 尺寸 强行害怕 痛哭| 久久精品一区二区影院| 在线a亚洲视频| 麻豆免费高清完整版| XXOO麻豆国产在线九九爱| 玩50岁四川熟女大白屁股直播| 黑吊大战白女出浆| 91精品视频网站| 色美妞论坛| 久久99re热在线观看视频| 99久视频只有精品2019| 色橹橹欧美在线观看视频高清| 好湿好滑好硬好爽好深视频| 97欧美精品大香伊蕉在人线| 天龙八部慕容属性加点| 久久精品手机观看| 大香伊人中文字幕精品| 国产成人精品视频| 亚洲精品一线二线三线无人区| 免费看黄软件| 国产乱码伦人偷精品视频| 2020久久精品永久免费| 桃色园社区| 美国ZOOM动物在线观看| 国产精品久久久久久日本| 最近的2019中文字幕国语HD| 十次啦中文网| 美女张开让男生桶| 国产午夜伦伦伦午夜伦| SM脚奴调教丨踩踏贱奴| 野花视频在线观看免费| 日日天干夜夜狠狠爱| 久久天天婷婷五月俺也去| 搞基福利社| 99精品AV无码一区二区| 亚洲深夜在线| 午夜aaaa| 日本视频中文字幕一区二区| 久热这里在线精品| 国产线精品视频在线观看|