精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

pipeline高端玩法—看下FlushNext的用法

Spinal FPGA ? 來源:Spinal FPGA ? 作者:玉騏 ? 2023-10-08 10:13 ? 次閱讀

看完了flush,再看下flushNext的用法

》flushNext

在Stage里,有關flushNext提供的API有:

defflushNext():Unit = flushNext(ConditionalContext.isTrue)

defflushNext(cond : Bool):Unit = internals.request.flushNext += cond

調用flushNext,最終會將flushNext的需求暫存到internals.request.flushNext中。

在Pipeline中,propagateRequirements函數中對于每一級Stage的處理:

varflushNext = stage.internals.request.flushNext.nonEmpty generate orR(stage.internals.request.flushNext)

如果flushNext不為空,則將所有條件或后得到flushNext電路對象。

a884076e-5f4a-11ee-939d-92fbcf53809c.png

在上面的這段描述中,針對驅動當前Stage的Conntection處理,flushNext電路將會被存儲在clFlushNext(l)中。如果flushNext不為空(line:5),可以看到在line7:9行處理時,不管flush是存在,都會創建一個flush電路對象,也就意味著一般情況下flush,flushNext不需要同時使用。

而在line11:14中,以M2S為例,alwasContainsSlaveToken為True,會將flushNext清空。此時在line16:17時,僅會對驅動當前Stage的Stage Master調動flushIt函數,也就意味著flushNext將會向前傳播,前級相當于執行flushIt。

clFlushNext的使用僅在Connection中使用到。還是以M2S為例,其處理邏輯為:

if(flushNext != null&& !flushPreserveInput) s.valid clearWhen(flushNext && s.ready)

在這里,如果flushNext不為空(flushPreserveInput默認為true),s.valid僅會在slave端ready和flushNext同時為高時才會清零。對比flush操作:

if (flush!= null&& !flushPreserveInput) s.valid clearWhen(flush)

也就意味著flushNext存在ready的情況下才具有意義。

》example

結合上面的分析,flushNext與flush的最大區別在于存在ready傳播的情況。這里先給出一個flsuhIt的例子:

wKgZomUiEOWAWKyuAADG-gw3z3U180.jpg

這里是一個三級pipeline,最后一級調用flushIt操作,flushRoot參數傳遞為true。

采用下面的仿真代碼:

wKgaomUiEP-AYapaAACi0NSFcZE779.jpg

我們這里在index==5時將cond拉高一拍,data_out.ready拉低一拍。

仿真波形如下:

a8aa546e-5f4a-11ee-939d-92fbcf53809c.jpg

可以看到,由于這里流水線為3級,在index=5時執行flush數據3,4,5不會從data_out有效輸出。

將flushRoot參數修改為false:

a8b65b2e-5f4a-11ee-939d-92fbcf53809c.jpg

cond為高時data_out.valid仍然為高電平,下一個時鐘周期拉低。雖然此時ready為低電平,這個數據沒有被消耗,但其拉低時間不考慮ready信號的高低電平。

再將上面的代碼換成flushNext:

a8c3aa5e-5f4a-11ee-939d-92fbcf53809c.jpg

可以看到,雖然cond為高,但其仍會堅持將此時已經傳播到stage2的3給穩定傳輸出去,僅有4,5不會被data_out輸出。






審核編輯:劉清

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

    關注

    68

    文章

    19165

    瀏覽量

    229138
  • 仿真器
    +關注

    關注

    14

    文章

    1016

    瀏覽量

    83643
  • Pipeline
    +關注

    關注

    0

    文章

    28

    瀏覽量

    9345

原文標題:pipeline高端玩法(八)—FlushNext

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

收藏 人收藏

    評論

    相關推薦

    總結一下STM32串口的用法

    STM32CubeMX_定時器中斷_PWM前兩節簡單的總結了GPIO, EXTI, TIMER的相關用法, 本節總結一下STM32串口的用法, 依然是原理性的東西不多講, 直接開干.先看下縮寫:...
    發表于 02-10 06:17

    Pipeline ADCs Come of Age

    Pipeline ADCs Come of Age Abstract: In the mid 1970s, a new data converter architecture
    發表于 04-16 16:21 ?1096次閱讀
    <b class='flag-5'>Pipeline</b> ADCs Come of Age

    Pipeline ADCs Come of Age

    and mixed-signal community, called pipeline ADCs. The following article takes the knowledge of advantages and disadvantages of the pipeline
    發表于 04-25 10:22 ?1078次閱讀
    <b class='flag-5'>Pipeline</b> ADCs Come of Age

    流水線模數轉換器的時代-Pipeline ADCs Come

    and mixed-signal community, called pipeline ADCs. The following article takes the knowledge of advantages and disadvantages of the pipeline
    發表于 05-01 10:57 ?1016次閱讀
    流水線模數轉換器的時代-<b class='flag-5'>Pipeline</b> ADCs Come

    狀態機原理及用法

    狀態機原理及用法狀態機原理及用法狀態機原理及用法
    發表于 03-15 15:25 ?0次下載

    如何降低開發門檻助力音視頻創新玩法

    、和華為AI技術專家Eric相聚直播間,深度解析了AV Pipeline Kit的技術要點和應用場景,助力廣大音視頻開發者以更輕松更高效的方式,為用戶提供新玩法,新交互。 緣起:音視頻開發面臨諸多挑戰
    的頭像 發表于 09-28 10:26 ?1896次閱讀

    修改V4L2的Video Pipeline的devicetree

    PetaLinux 能夠根據Vivado的設計,自動生成V4L2的Video Pipeline的devicetree。但是它主要為Xilinx的VCU TRD服務,測試的組合比較少。很多時候,需要根據自己的工程,修改V4L2的Video Pipeline的devicetr
    的頭像 發表于 08-02 08:03 ?2058次閱讀
    修改V4L2的Video <b class='flag-5'>Pipeline</b>的devicetree

    Ping命令的7個基礎用法

    IT行業中ping命令經常被用到,今天整理了一下關于網絡基礎知識中的網絡命令ping命令在項目中是使用頻率最高的,一般我們用的都是它的基本功能,今天和大家來詳細看下Ping命令的7個基礎用法,掌握了秒變大神!
    的頭像 發表于 10-12 09:16 ?3858次閱讀

    SpinalHDL里pipeline的設計思路

    如果你曾看過VexRSICV的設計,對于從事邏輯設計的你會驚訝從未想過邏輯設計還能這么來做。針對VexRSICV所衍生出的pipeline Lib,該系列會對pipeline進行一次梳理。誠如之前一篇博客曾講,這是“勇者的游戲”。
    的頭像 發表于 08-16 15:11 ?919次閱讀
    SpinalHDL里<b class='flag-5'>pipeline</b>的設計思路

    pipeline高端玩法之Stage里的隱式轉換

    Scala里面的隱式轉換的好處是靈活,壞處就是太靈活。
    的頭像 發表于 08-19 10:45 ?634次閱讀
    <b class='flag-5'>pipeline</b><b class='flag-5'>高端</b><b class='flag-5'>玩法</b>之Stage里的隱式轉換

    Pipeline中throwIt的用法

    字如其名,來看下Pipeline中throwIt的用法,是怎么個丟棄方式。
    的頭像 發表于 10-21 16:24 ?527次閱讀
    <b class='flag-5'>Pipeline</b>中throwIt的<b class='flag-5'>用法</b>

    pipeline高端玩法—優先級介紹

    無論是SystemVerilog還是SpinalHDL,都有Last valid assignment wins的語法特征。如在SpinalHDL-Doc中所描述
    的頭像 發表于 11-04 10:13 ?608次閱讀
    <b class='flag-5'>pipeline</b><b class='flag-5'>高端</b><b class='flag-5'>玩法</b>—優先級介紹

    pipeline高端玩法—haltIt介紹(九)

    看名字,就基本能猜到這個函數的大體功能是流水線暫停。
    的頭像 發表于 11-24 16:57 ?356次閱讀

    什么是pipeline?Go中構建流數據pipeline的技術

    本文介紹了在 Go 中構建流數據pipeline的技術。 處理此類pipeline中的故障很棘手,因為pipeline中的每個階段可能會阻止嘗試向下游發送值,并且下游階段可能不再關心傳入的數據。
    的頭像 發表于 03-11 10:16 ?554次閱讀

    淺析SpinalHDL中Pipeline中的復位定制

    之前有系列文章介紹了SpinalHDL中Pipeline的使用,最近在一個功能模塊中真實的使用了這個lib。
    的頭像 發表于 03-17 17:31 ?992次閱讀
    淺析SpinalHDL中<b class='flag-5'>Pipeline</b>中的復位定制