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

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

    文章

    1055

    瀏覽量

    103935
  • 時鐘
    +關注

    關注

    11

    文章

    1886

    瀏覽量

    132904
  • 數字邏輯
    +關注

    關注

    0

    文章

    74

    瀏覽量

    16993

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    關于時鐘信號的處理方法

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

    三種時鐘處理方法

    的三種方法時鐘處理方法如下:  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 ?7533次閱讀
    cdc路徑方案幫您解決<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>難題

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

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

    SpinalHDL時鐘域中的定制與命名

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

    總線半握手時鐘處理

    總線半握手時鐘處理 簡要概述: 在上篇講了單bit脈沖同步器
    的頭像 發表于 04-04 12:32 ?3170次閱讀
    總線半握手<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 ?4568次閱讀
    關于<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>的詳細解答

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

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

    FPGA時鐘處理方法()

    時鐘是FPGA設計中最容易出錯的設計模塊,而且時鐘
    的頭像 發表于 05-25 15:06 ?2458次閱讀
    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 ?1275次閱讀
    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>(二)
    主站蜘蛛池模板: 亚洲欧洲一区二区三区在线 | 久久精品国产亚洲综合色 | 美女扒开尿口给男人爽的视频 | 同性恋激情视频 | 国内一区二区三区精品视频 | 思思久久好好热精品国产 | 男人和女人在床做黄的网站 | 亚洲一区二区三区精品视频 | 欧美一级高清免费a | 四虎日韩 | 亚洲宅男天堂a在线 | 免费黄色一级毛片 | 国产一级特黄aa大片爽爽 | www.激情五月.com| 啪啪在线视频 | 涩涩97在线观看视频 | 国产精品成人va在线观看入口 | 男女交性高清视频无遮挡 | 在线免费看 | 欧美大全 | 久久香蕉国产视频 | 免费观看激色视频网站bd | 九九热在线精品视频 | 男女免费观看视频 | 国内一级毛片 | 2019偷偷狠狠的日日 | 日本电影在线观看黄 | 天堂在线观看中文字幕 | 51国产午夜精品免费视频 | 2019天天操 | avtom影院永久转四虎入口 | 国产福利不卡一区二区三区 | 中文字幕精品一区 | 欧美一级欧美三级在线观看 | 欧美黄色片免费看 | 国产69精品久久久久9999 | 五月天婷婷在线视频 | 日韩高清性爽一级毛片免费 | 久久伦子沙发 | 色综合97天天综合网 | 一区二区三区精品视频 |