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

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

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

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

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

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

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

打拍處理

跨時(shí)鐘域信號(hào)的打拍處理往往用于單比特信號(hào)或類似于格林碼這種信號(hào)的跨時(shí)鐘域處理。其邏輯電路很簡(jiǎn)單。SpinalHDL提供了BufferCC用于實(shí)現(xiàn)這種跨時(shí)鐘域打拍處理方式:
BufferCC(input: T, init: T = null, bufferDepth: Int = 2)
bufferDepth可用于指定打拍級(jí)數(shù)。input信號(hào)的時(shí)鐘域?yàn)樵磿r(shí)鐘域,BUfferCC調(diào)用的地方的時(shí)鐘域?yàn)槟康臅r(shí)鐘域。

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

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

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

對(duì)于吞吐要求不是特別高的場(chǎng)合,跨時(shí)鐘域信號(hào)采用握手形式進(jìn)行處理也是一種不錯(cuò)的選擇。SpinalHDL有兩個(gè)抽象類型個(gè)人一直很喜歡:Stream,F(xiàn)low。這兩種形式基本囊括了所有的信號(hào)交互行為,其也可以說是SpinalHDL lib庫的基石。針對(duì)跨時(shí)鐘域的握手處理,SpinalHDL有一個(gè)StreamCCByToggle可以使用:

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

其輸入?yún)?shù)包含源時(shí)鐘域信號(hào),源時(shí)鐘域,目的時(shí)鐘域,其返回一個(gè)目的時(shí)鐘域的Stream信號(hào):

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

這里srcIn隸屬于時(shí)鐘域clkA,destOut隸屬于時(shí)鐘域clkB。


除了StreamCCByToggle,SpinalHDL里還有一個(gè)FlowCCByToggle。由于Flow類型沒有反壓,因而從低時(shí)鐘域向高時(shí)鐘域進(jìn)行傳輸則沒什么問題,但從高時(shí)鐘域向低時(shí)鐘域進(jìn)行轉(zhuǎn)換則存在丟失數(shù)據(jù)的風(fēng)險(xiǎn)。


FIFO跨時(shí)鐘域緩存

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

審核編輯:湯梓紅


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

    關(guān)注

    48

    文章

    1041

    瀏覽量

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

    關(guān)注

    11

    文章

    1746

    瀏覽量

    131775
  • 數(shù)字邏輯
    +關(guān)注

    關(guān)注

    0

    文章

    74

    瀏覽量

    16695

原文標(biāo)題:跨時(shí)鐘域那點(diǎn)事兒

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    三種時(shí)鐘處理方法

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

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

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

    看看Stream信號(hào)是如何做時(shí)鐘握手的

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

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

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

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

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

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

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

    SpinalHDL時(shí)鐘域中的定制與命名

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

    總線半握手時(shí)鐘處理

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

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

    個(gè)做數(shù)字邏輯的都繞不開時(shí)鐘處理,談SpinalH
    的頭像 發(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í)
    的頭像 發(fā)表于 09-18 11:33 ?2.2w次閱讀
    介紹3種<b class='flag-5'>方法</b><b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b><b class='flag-5'>處理</b><b class='flag-5'>方法</b>

    基于FPGA的時(shí)鐘信號(hào)處理——MCU

    問題,不過請(qǐng)注意,今后的這些關(guān)于異步信號(hào)處理的文 章將會(huì)重點(diǎn)從工程實(shí)踐的角度出發(fā),以一些特權(quán)同學(xué)遇到過的典型案例的設(shè)計(jì)為依托,從代碼的角度來剖析一些特權(quán)同學(xué)認(rèn)為經(jīng)典的
    發(fā)表于 11-01 16:24 ?11次下載
    基于FPGA的<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>信號(hào)<b class='flag-5'>處理</b>——MCU

    三種時(shí)鐘處理方法

    時(shí)鐘處理是FPGA設(shè)計(jì)中經(jīng)常遇到的問題,而如何處理時(shí)
    的頭像 發(fā)表于 10-18 09:12 ?7993次閱讀

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

    時(shí)鐘是FPGA設(shè)計(jì)中最容易出錯(cuò)的設(shè)計(jì)模塊,而且時(shí)鐘
    的頭像 發(fā)表于 05-25 15:06 ?2077次閱讀
    FPGA<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b><b class='flag-5'>處理</b><b class='flag-5'>方法</b>(<b class='flag-5'>一</b>)

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

    篇文章已經(jīng)講過了單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><b class='flag-5'>處理</b><b class='flag-5'>方法</b>(二)