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

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

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

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

FPGA之家 ? 來源:似猿非猿的FPGA ? 作者:似猿非猿的FPGA ? 2021-04-27 10:52 ? 次閱讀

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

打拍處理 跨時(shí)鐘域信號(hào)的打拍處理往往用于單比特信號(hào)或類似于格林碼這種信號(hào)的跨時(shí)鐘域處理。其邏輯電路很簡單。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:

f4efce9e-a67e-11eb-aece-12bb97331649.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ì)于吞吐要求不是特別高的場合,跨時(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):

f54fad50-a67e-11eb-aece-12bb97331649.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)?!贰稦IFO跨時(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
編輯:lyn

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

    關(guān)注

    6636

    文章

    2398

    瀏覽量

    201121
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2241

    瀏覽量

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

    關(guān)注

    0

    文章

    50

    瀏覽量

    9510

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于UCC25640x LLC諧振控制器的常見問題解答

    電子發(fā)燒友網(wǎng)站提供《關(guān)于UCC25640x LLC諧振控制器的常見問題解答.pdf》資料免費(fèi)下載
    發(fā)表于 09-04 09:37 ?0次下載
    <b class='flag-5'>關(guān)于</b>UCC25640x LLC諧振控制器的常見問題<b class='flag-5'>解答</b>

    極限失控的大模型使電力系統(tǒng)面臨的攻擊風(fēng)險(xiǎn)及應(yīng)對(duì)措施

    分析大規(guī)模生成式預(yù)訓(xùn)練模型(以下簡稱為大模型)發(fā)生極限失控、使電力系統(tǒng)面臨的攻擊風(fēng)險(xiǎn)及相關(guān)的應(yīng)對(duì)措施,以期引起業(yè)內(nèi)對(duì)這一風(fēng)險(xiǎn)的重視、討論與行動(dòng)?;诖竽P偷默F(xiàn)狀、發(fā)展趨勢(shì)以及它與人工智能反叛之間
    發(fā)表于 07-22 12:09 ?0次下載

    單芯片運(yùn)行六個(gè)操作系統(tǒng),芯馳科技交卷融合

    關(guān)于智能汽車的整車架構(gòu)如何發(fā)展,行業(yè)內(nèi)已經(jīng)達(dá)成了三步走的共識(shí)。過去汽車行業(yè)采用的是分布式的計(jì)算架構(gòu),目前正邁入更加集成化的融合階段,而對(duì)于未來的設(shè)想則是實(shí)現(xiàn)中央計(jì)算。
    的頭像 發(fā)表于 05-09 15:17 ?418次閱讀

    介紹一個(gè)IC設(shè)計(jì)錯(cuò)誤案例:可讀debug寄存器錯(cuò)誤時(shí)鐘

    本文將介紹一個(gè)時(shí)鐘錯(cuò)誤的案例如圖所示,phy_status作為一個(gè)多bit的phy_clk時(shí)鐘的信號(hào),需要輸入csr模塊作為一個(gè)可讀狀態(tài)寄存器
    的頭像 發(fā)表于 03-11 15:56 ?389次閱讀
    介紹一個(gè)IC設(shè)計(jì)錯(cuò)誤案例:可讀debug寄存器錯(cuò)誤<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b>

    如何生成關(guān)于時(shí)鐘同步功能的DTC?

    如何生成關(guān)于時(shí)鐘同步功能的DTC? 時(shí)鐘同步功能是指在一個(gè)系統(tǒng)內(nèi)的多個(gè)時(shí)鐘源進(jìn)行同步,確保它們的時(shí)間保持一致。這在許多實(shí)時(shí)系統(tǒng)中都非常重要,特別是在需要多個(gè)設(shè)備或組件協(xié)同工作的場景中。
    的頭像 發(fā)表于 01-16 15:10 ?422次閱讀

    時(shí)鐘的解決方案

    在很久之前便陸續(xù)談過亞穩(wěn)態(tài),F(xiàn)IFO,復(fù)位的設(shè)計(jì)。本次亦安做一個(gè)簡單的總結(jié),從宏觀上給大家展示時(shí)鐘的解決方案。
    的頭像 發(fā)表于 01-08 09:42 ?713次閱讀
    <b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>的解決方案

    如何處理時(shí)鐘這些基礎(chǔ)問題

    對(duì)于數(shù)字設(shè)計(jì)人員來講,只要信號(hào)從一個(gè)時(shí)鐘跨越到另一個(gè)時(shí)鐘,那么就可能發(fā)生亞穩(wěn)態(tài)。我們稱為“時(shí)鐘
    發(fā)表于 01-08 09:39 ?430次閱讀
    如何處理<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>這些基礎(chǔ)問題

    FPGA設(shè)計(jì)技巧—多時(shí)鐘和異步信號(hào)處理解決方案

    有一個(gè)有趣的現(xiàn)象,眾多數(shù)字設(shè)計(jì)特別是與FPGA設(shè)計(jì)相關(guān)的教科書都特別強(qiáng)調(diào)整個(gè)設(shè)計(jì)最好采用唯一的時(shí)鐘
    的頭像 發(fā)表于 12-22 09:04 ?1282次閱讀
    FPGA設(shè)計(jì)技巧—多<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>和異步信號(hào)處理解決方案

    IC設(shè)計(jì):ram的應(yīng)用-異步時(shí)鐘位寬轉(zhuǎn)換

    在進(jìn)行模塊設(shè)計(jì)時(shí),我們經(jīng)常需要進(jìn)行數(shù)據(jù)位寬的轉(zhuǎn)換,常見的兩種轉(zhuǎn)換場景有同步時(shí)鐘位寬轉(zhuǎn)換和異步時(shí)鐘位寬轉(zhuǎn)換。本文將介紹異步時(shí)鐘
    的頭像 發(fā)表于 11-23 16:41 ?648次閱讀
    IC設(shè)計(jì):ram的應(yīng)用-異步<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>位寬轉(zhuǎn)換

    關(guān)于400G光模塊的常見問題解答

    最近在后臺(tái)收到了很多用戶咨詢關(guān)于400G光模塊的信息,那400G光模塊作為當(dāng)下主流的光模塊類型,有哪些問題是備受關(guān)注的呢?下面來看看小易的詳細(xì)解答
    的頭像 發(fā)表于 11-16 17:07 ?631次閱讀
    <b class='flag-5'>關(guān)于</b>400G光模塊的常見問題<b class='flag-5'>解答</b>

    請(qǐng)問雙口RAM能用來進(jìn)行時(shí)鐘傳輸數(shù)據(jù)嗎?

    請(qǐng)問雙口RAM能用來進(jìn)行時(shí)鐘傳輸數(shù)據(jù)嗎? 雙口RAM是一種用于在兩個(gè)時(shí)鐘之間傳輸數(shù)據(jù)的存儲(chǔ)器,因此它確實(shí)可以用于
    的頭像 發(fā)表于 10-18 15:24 ?749次閱讀

    為什么異步fifo中讀地址同步在寫時(shí)鐘時(shí)序分析不通過?

    為什么異步fifo中讀地址同步在寫時(shí)鐘時(shí)序分析不通過? 異步FIFO中讀地址同步在寫時(shí)鐘時(shí)序分析不通過的原因可能有以下幾個(gè)方面: 1. 讀地址同步在寫
    的頭像 發(fā)表于 10-18 15:23 ?565次閱讀

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

    fpga時(shí)鐘通信時(shí),慢時(shí)鐘如何讀取快時(shí)鐘發(fā)送過來的數(shù)據(jù)? 在FPGA設(shè)計(jì)中,通常需要
    的頭像 發(fā)表于 10-18 15:23 ?875次閱讀

    華為MPLS后門鏈路實(shí)驗(yàn)配置

    可以使用任意方式來跑MPLS(A、B、C1、C2都可以),不過關(guān)于傳遞Vpnv4路由的配置此處不做介紹;此處只介紹關(guān)于PE和CE對(duì)接的配置和關(guān)于
    的頭像 發(fā)表于 10-16 16:54 ?622次閱讀
    華為MPLS<b class='flag-5'>跨</b><b class='flag-5'>域</b>后門鏈路實(shí)驗(yàn)配置

    如何解決問題

    如何解決問題?首先我們需要知道什么是指的是瀏覽器不能執(zhí)行其它網(wǎng)站的腳本,它是由瀏覽
    的頭像 發(fā)表于 10-09 16:07 ?474次閱讀
    如何解決<b class='flag-5'>跨</b><b class='flag-5'>域</b>問題