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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

Pipeline中throwIt的用法

Spinal FPGA ? 來源:Spinal FPGA ? 2023-10-21 16:24 ? 次閱讀

編 者 按

字如其名,來看下Pipeline中throwIt的用法,是怎么個丟棄方式

API

在Stage中,關于throwIt提供了下面的API:

deb429c2-6fe9-11ee-939d-92fbcf53809c.png

函數中的動作出現了兩個變量的使用:

internal.request.throws

internals.request.throwRoot 那么去到Pipeline里面看都哪里使用到了它。在看之前,先再來回顧下在SpinalHDL中pipeline的編程模型:

dec5b69c-6fe9-11ee-939d-92fbcf53809c.png

在Pipeline的模型里,Pipeline中的任何一級都是一個組合邏輯,如果它要驅動下一級Pipeline,那么其可以通過Connection來和下一級建立連接關系,最后一級則沒有Connection。而在Connection中,則可以進行打拍。也即Stage中負責功能實現,Connection負責實現控制流水線級數,時序優化。

Connection中的作用

在Pipeline的build函數中,其定義了throwOne:

var throwOne = stage.internals.request.throws.nonEmpty generate orR(stage.internals.request.throws)

即如果internals.request.throws如果不為空,那么其中的所有條件取或后賦值給throwOne.

而后,在處理Stage間的連接關系時有:

decf0e18-6fe9-11ee-939d-92fbcf53809c.png

這里對于驅動該級的Connection,首先將throwOne保留至clThrowOne(l)中,隨后在if判斷中,會為clThrowOneHit(l)聲明為一個Bool()對象。在常用的Connection M2S、S2M中,alwasContainsSlaveToken均為true,故此時throwOne變量將會被賦值為null。

而對于:

if(throwOne != null) c.m.throwIt(throwOne, root = false)

由于此時throwOne重新被賦值為null,故并不會為驅動該Stage的Master調用throwIt,也即throw并不會向前級傳輸。

最終會調用下面的函數來進行Stage間的連接關系:

valarea = l.on(m, s, clFlush(l), clFlushNext(l), clFlushNextHit(l), clThrowOne(l), clThrowOneHit(l))

clThrowOne(l)作為throwHead參數傳入Connection的on函數。以M2S為例,我們來看下其在里面會有哪些動作:

m.ready match {
casenull=>
s.valid := m.valid
(s.payload, m.payload).zipped.foreach(_ := _)
caser => {
if(flush != null&& flushPreserveInput) s.valid clearWhen(flush)
if(throwHead != null) s.valid clearWhen(throwHead)
when(r) {
s.valid := m.valid
}
when(if(holdPayload) m.valid && r elser) {
(s.payload, m.payload).zipped.foreach(_ := _)
}
}
}

可以看到,如果驅動Connection的Master沒有ready信號,那么throwHead是沒有任何作用的。

如果master具備ready信號,如果此時m.ready信號為低電平,那么作為Slave的Stage其input.valid將會在下一拍變為低電平。

Stage中的作用

在Stage中的作用比較簡單,僅internals.request.throwRoot會起作用。在Pipeline中的build函數中:

if(s.request.throwsRoot.nonEmpty){
val doThrow = s.request.throwsRoot.orR
when(doThrow){
s.output.valid := False
}
}

如果throwsRoot不為空,則其中任意一個條件滿足是,Stage中的output.valid會立即清零。

結合Connection中throw的作用,throw會導致當前Stage的input.valid在下一拍清空(input.valid為寄存器),而默認情況下stage的output.valid(Wire)直接由input.valid驅動,故throwsRoot的作用就是讓Stage的output.valid立即生效。比如說此時input.valid為高電平,ouput.ready也為高電平,throwsRoot將output.valid直接拉低避免當前拍的數據傳輸到下一級,從而實現立即丟掉。

Example

dedc698c-6fe9-11ee-939d-92fbcf53809c.png

在這個例子中,如果cond為true,則stage2會立即丟掉當前傳輸至output端口的數據。

審核編輯:湯梓紅

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

    關注

    2

    文章

    1551

    瀏覽量

    63236
  • 函數
    +關注

    關注

    3

    文章

    4363

    瀏覽量

    63713
  • 模型
    +關注

    關注

    1

    文章

    3456

    瀏覽量

    49749
  • Pipeline
    +關注

    關注

    0

    文章

    28

    瀏覽量

    9523

原文標題:pipeline高端玩法(十)—throwIt

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

收藏 0人收藏

    評論

    相關推薦

    一覽pipeline中所出現的五個基本要素

    stageable、StageableKey是最整個pipeline的基本數據類型元素
    的頭像 發表于 08-12 11:24 ?1212次閱讀
    一覽<b class='flag-5'>pipeline</b>中所出現的五個基本要素

    Stream模塊的基礎用法和進階用法

    有用。在本教程,我們將介紹 Stream 模塊的基礎用法和進階用法,并提供示例。 基礎用法 在本節,我們將介紹 Stream 模塊的基礎
    的頭像 發表于 09-19 15:33 ?1416次閱讀

    Matlab的冒號的用法

    Matlab的冒號的用法
    發表于 03-11 22:22

    verilogHDL的{}用法

    verilogHDL的{}用法,求詳解。
    發表于 03-22 23:48

    求助,能否在一個pipeline添加多個音頻輸入流?

    能否在一個pipeline添加多個音頻輸入流[,例如httpstream flash_tone_stream,因為音頻的輸入方向有兩個。或者能否進行pipeline的時間復用,覺得設置兩個播放的
    發表于 03-10 08:09

    Pipeline ADCs Come of Age

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

    OrCAD創建總線及用法詳解

    OrCAD創建總線及用法詳解,如何創建總線,菜單place->bus或者右側快捷按鈕
    發表于 12-02 10:18 ?2.7w次閱讀

    Simulink的Battery模塊用法概述

    如果進行電池SOC的建模,常常會用到Simulink的Battery模塊,本期基于Matlab的help文件,會大家概述Battery模塊的用法
    的頭像 發表于 06-28 15:00 ?7685次閱讀
    Simulink<b class='flag-5'>中</b>的Battery模塊<b class='flag-5'>用法</b>概述

    SpinalHDL里pipeline的設計思路

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

    扒一扒pipeline“spawn”的用法

    在Stage,關于spawn,定義了下面的兩個API
    的頭像 發表于 10-29 09:57 ?730次閱讀
    扒一扒<b class='flag-5'>pipeline</b><b class='flag-5'>中</b>“spawn”的<b class='flag-5'>用法</b>

    oraclesubstr函數用法

    在Oracle數據庫,SUBSTR函數用于從字符串中提取子字符串。它的語法如下: SUBSTR(string, start_position, [length]) 其中,string是要從中提取子
    的頭像 發表于 12-05 16:57 ?1671次閱讀

    split在python用法

    split在python用法 split()是Python中一個非常常用的字符串函數,它能夠根據指定的分隔符將一個字符串分割成多個子字符串,并返回一個包含這些子字符串的列表。本文將詳細介紹
    的頭像 發表于 12-25 15:12 ?2312次閱讀

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

    本文介紹了在 Go 構建流數據pipeline的技術。 處理此類pipeline的故障很棘手,因為pipeline
    的頭像 發表于 03-11 10:16 ?817次閱讀

    淺析SpinalHDLPipeline的復位定制

    之前有系列文章介紹了SpinalHDLPipeline的使用,最近在一個功能模塊真實的使用了這個lib。
    的頭像 發表于 03-17 17:31 ?1251次閱讀
    淺析SpinalHDL<b class='flag-5'>中</b><b class='flag-5'>Pipeline</b><b class='flag-5'>中</b>的復位定制
    主站蜘蛛池模板: 免费一级片网站 | 浪荡受自我调教纯肉BL | 亚洲精品久久久无码AV片软件 | 老汉老太bbbbbxxxxx| 亚洲 欧美 国产 在线 日韩 | 亚洲黄色三级视频 | 丰满少妇69激懒啪啪无码 | 欧美jizz19性欧美| 亚洲色图19p | 国产网站免费观看 | 寂寞夜晚免费观看视频 | 学生妹被爆插到高潮无遮挡 | 欧美亚洲日韩自拍高清中文 | 最新精品学生国产自在现拍 | 精品无码三级在线观看视频 | 中文字幕无码他人妻味 | 人与禽物videos另类 | 恋夜影视列表免费安卓手机版 | QVOD理论 | 一本道中文无码亚洲 | 久久婷婷国产五月综合色啪最新 | 免费看的一级毛片 | 亚洲精品成人a在线观看 | 4hu四虎免费影院www | 97国产人妻精品无码AV在线 | japanese幼儿videos | 性色AV乱码一区二区三区视频 | av影音先锋天堂网 | 午夜看片网 | 湖南电台在线收听 | 亚洲人视频在线 | 综合久久久久久久综合网 | 97超在线视频 | 一一本之道高清视频在线观看中文字幕 | 考试考90就可以晚上和老师C | 护士12p| 无码一卡二卡三卡四卡 | 九九大香尹人视频免费 | 香蕉尹人综合精品 | 最新高清无码专区在线视频 | 亚洲成人在线免费 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品