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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

一覽pipeline中所出現(xiàn)的五個(gè)基本要素

Spinal FPGA ? 來(lái)源:Spinal FPGA ? 2023-08-12 11:24 ? 次閱讀

》Stageable、StageableKey stageable、StageableKey是最整個(gè)pipeline中的基本數(shù)據(jù)類(lèi)型元素:

object Stageable{
def apply[T <: Data](gen : => T) = new Stageable(gen)
def apply[T <: Data](gen : HardType[T]) = new Stageable(gen.craft())
}

class Stageable[T <: Data](gen : => T) extends HardType(gen) with Nameable {

}
case class StageableOffset(val value : Any)
object StageableOffsetNone extends StageableOffset(null)
case class StageableKey(stageable: Stageable[Data], key : Any){
override def toString = {
var name = stageable.getName()
if(key != null) name = name + "_" + key
name
}
}

對(duì)于Stageabel,我們可以傳入任何SpinalHDL下面定義的隸屬于Data的類(lèi)型,不同于我們?cè)陔娐防锷粋€(gè)電路對(duì)象:

vala=UInt(8bits)

此時(shí),電路對(duì)象是立即生命存在的,如果我們不對(duì)他進(jìn)行賦值會(huì)報(bào)錯(cuò)。而:

valb=Stageable(UInt(8bits))

此時(shí)b并未真正生成電路對(duì)象,即使不對(duì)他進(jìn)行賦值也并不會(huì)報(bào)錯(cuò)。

對(duì)于StageableKey,字如其名,其主要用作Key使用,用于建立Stageable映射時(shí)的key使用。

》Stage

借用上一篇文章中的圖:

b0b125e2-38b3-11ee-9e74-dac502259ad0.jpg

Stage主要用于實(shí)現(xiàn)pipeline的功能實(shí)現(xiàn)。那么Stage則定義了這些功能的輸入、輸出:

val input = new{
val valid = Bool()
varready : Bool = null
}

val output = newArea {
val valid = Bool()
varready : Bool = null
}

以及一些列的內(nèi)部保存變量:

val arbitration = new{
varisRemoved : Bool = null
varisFlushed : Bool = null
varisThrown : Bool = null
varisForked : Bool = null
varisFlushingNext : Bool = null
varisFlushingRoot : Bool = null
varisHalted : Bool = null
varisHaltedByOthers : Bool = null
varpropagateReady = false
}

val request = new{
val halts = ArrayBuffer[Bool]()
val throws = ArrayBuffer[Bool]()
val throwsRoot = ArrayBuffer[Bool]()
val forks = ArrayBuffer[Bool]()
val spawns = ArrayBuffer[Bool]()
val flush = ArrayBuffer[Bool]()
val flushRoot = ArrayBuffer[Bool]()
val flushNext = ArrayBuffer[Bool]()
}

val stageableToData = mutable.LinkedHashMap[StageableKey, Data]()
val stageableOverloadedToData = mutable.LinkedHashMap[StageableKey, Data]()
val stageableResultingToData = mutable.LinkedHashMap[StageableKey, Data]()
val stageableTerminal = mutable.LinkedHashSet[StageableKey]()

這些變量暫時(shí)看不懂也沒(méi)關(guān)系,后續(xù)會(huì)通過(guò)例子逐一進(jìn)行講解。通過(guò)這些內(nèi)部變量,pipeline在構(gòu)建電路時(shí)處理Stage之間的依賴(lài)關(guān)系。

》Connection

顧名思義,Connection用于負(fù)責(zé)Stage之間的連接關(guān)系,即其負(fù)責(zé)處理上一級(jí)Stage的output與下一級(jí)Stage的input之間的連接。在Lib中,Connection定義了四種連接關(guān)系:

DIRECT:類(lèi)似一兩個(gè)Stream直接相連

M2S:類(lèi)似于Stream中的M2SPipe,對(duì)valid、payload進(jìn)行打拍輸出

S2M:類(lèi)似于Stream中的S2MPipe,對(duì)于ready進(jìn)行打拍輸出

乍看其實(shí)現(xiàn)你會(huì)發(fā)現(xiàn)其中有好多參數(shù)一時(shí)不知用途,無(wú)妨,先放一放,回頭逐一講解。

》pipeline

Pipeline中核心是一個(gè)build函數(shù)。當(dāng)我們描述完各Stage的功能之后,通過(guò)調(diào)用Pipeline的build函數(shù)即可構(gòu)建整個(gè)的流水線(xiàn)電路,其也是整個(gè)pipelines構(gòu)建的核心,直接上來(lái)看可能會(huì)略覺(jué)麻煩,后面通過(guò)例子一點(diǎn)點(diǎn)來(lái)理解。

》第一個(gè)例子

先有個(gè)概念之后,我們?cè)賮?lái)一個(gè)pipeline的第一個(gè)例子:

caseclassdemo() extendsComponent{
val io=newBundle{
val data_in=slave Flow(UInt(8bits))
val data_out=master Flow(UInt(8bits))
}
noIoPrefix()
val pip=newPipeline{
val paylaod=Stageable(UInt(8bits))
val stage0=newStage{
importinternals._
input.valid:=io.data_in.valid
this(paylaod):=io.data_in.payload
}
val stage1=newStage(Connection.M2S())
val stage2=newStage(Connection.M2S()){
io.data_out.valid:=internals.output.valid
io.data_out.payload:=this(paylaod)
}
}
pip.build()
}

這個(gè)例子的功能是將Flow data_in打兩拍輸出給data_out,一個(gè)最簡(jiǎn)單的流水線(xiàn)結(jié)構(gòu),不牽涉到任何halt、flush等相關(guān)操作。如果你看不懂,可以先看它生成的RTL代碼:

moduledemo (
input data_in_valid,
input [7:0] data_in_payload,
output data_out_valid,
output [7:0] data_out_payload,
input clk,
input reset
);

reg[7:0] pip_stage1_paylaod;
reg[7:0] pip_stage2_paylaod;
wire[7:0] pip_stage0_paylaod;
wirepip_stage0_valid;
regpip_stage1_valid;
regpip_stage2_valid;

assignpip_stage0_valid = data_in_valid;
assignpip_stage0_paylaod = data_in_payload;
assigndata_out_valid = pip_stage2_valid;
assigndata_out_payload = pip_stage2_paylaod;
always@(posedge clk or posedge reset) begin
if(reset) begin
pip_stage1_valid <= 1'b0;
??????pip_stage2_valid <= 1'b0;
????end?else begin
??????pip_stage1_valid <= pip_stage0_valid;
??????pip_stage2_valid?<= pip_stage1_valid;
????end
??end

??always @(posedge clk) begin
????pip_stage1_paylaod <= pip_stage0_paylaod;
????pip_stage2_paylaod?<= pip_stage1_paylaod;
??end


endmodule

一眼看去,可能覺(jué)得很怪,有很多疑問(wèn)。比如說(shuō)data_in的valid信號(hào)是如何從stage0傳輸?shù)絪tage1的等等。





審核編輯:劉清

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

    關(guān)注

    68

    文章

    19833

    瀏覽量

    233940
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    388

    瀏覽量

    60800
  • Pipeline
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    9648
  • VaR
    VaR
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    11540
  • HDL語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    9123

原文標(biāo)題:pipeline高端玩法(二)——成員一覽

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

收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    中東展會(huì)一覽

    水處理、電力、環(huán)保產(chǎn)品展(Wetex 2010)---迪拜2010.3.9---2010.3.11---屆石油類(lèi)展會(huì)一覽表:2010年第屆沙特國(guó)際石化技術(shù)博覽會(huì)(Saudi P
    發(fā)表于 02-25 10:05

    PCB設(shè)計(jì)基本要素

    syj工程編寫(xiě)的PCB設(shè)計(jì)基本要素
    發(fā)表于 12-13 14:05

    資料推薦:gatt的句柄一覽

    gatt的句柄一覽
    發(fā)表于 06-12 13:57

    小天線(xiàn)測(cè)試解決方案服務(wù)一覽

    小天線(xiàn)測(cè)試解決方案服務(wù)一覽
    發(fā)表于 09-06 09:51

    形成干擾的基本要素

    形成干擾的基本要素切斷干擾傳播路徑的常用措施提高敏感器件的抗干擾性能
    發(fā)表于 02-05 06:26

    DMA通道一覽

    DMA通道一覽DMA1通道DMA2通道DMA內(nèi)容詳解DMA的定義直接存儲(chǔ)器存取(Direct MemoryAccess,DMA)是計(jì)算機(jī)科學(xué)中的種內(nèi)存訪(fǎng)問(wèn)技術(shù)。它允許某些電腦內(nèi)部的硬體子系統(tǒng)(電腦
    發(fā)表于 08-12 07:05

    安川伺服輔助功能參數(shù)一覽

    輔助功能一覽表,監(jiān)視模式一覽表,用戶(hù)參數(shù)一覽表,報(bào)警顯示一覽表輔助功能一覽表Fn000 顯示警報(bào)追蹤備份數(shù)據(jù)Fn001 設(shè)定在線(xiàn)自動(dòng)調(diào)諧時(shí)的
    發(fā)表于 09-06 07:10

    出差報(bào)告資料表一覽

    出差報(bào)告資料一覽表 出差報(bào)告資料一覽表科[    簽章]資料1  2  3  4  5  6附圖1  2 記錄1.錄影帶   
    發(fā)表于 03-01 15:21 ?16次下載

    般繼電器 (Relay)一覽

    般繼電器 (Relay)一覽
    發(fā)表于 11-26 11:56 ?40次下載

    國(guó)際標(biāo)準(zhǔn)規(guī)格一覽

    國(guó)際標(biāo)準(zhǔn)規(guī)格一覽
    發(fā)表于 04-11 14:30 ?2928次閱讀
    國(guó)際標(biāo)準(zhǔn)規(guī)格<b class='flag-5'>一覽</b>表

    DFT性質(zhì)一覽

    DFT性質(zhì)一覽
    發(fā)表于 07-25 11:41 ?4282次閱讀
    DFT性質(zhì)<b class='flag-5'>一覽</b>表

    SKYLAB 現(xiàn)有WiFi模塊一覽

    WiFi模塊一覽
    發(fā)表于 07-27 16:42 ?10次下載

    探頭附件線(xiàn)產(chǎn)品一覽

    探頭附件線(xiàn)產(chǎn)品一覽
    的頭像 發(fā)表于 09-08 15:41 ?1274次閱讀
    探頭附件線(xiàn)產(chǎn)品<b class='flag-5'>一覽</b>

    汽車(chē) EMC 問(wèn)題一覽

    汽車(chē) EMC 問(wèn)題一覽
    的頭像 發(fā)表于 11-24 16:44 ?1990次閱讀
    汽車(chē) EMC 問(wèn)題<b class='flag-5'>一覽</b>

    PCB的個(gè)基本要素

    網(wǎng)絡(luò)。同時(shí)PCB板還具有絕緣,隔熱,防潮等功能。 3、PCB的個(gè)基本要素用 01 要素:載板 PCB的載板又稱(chēng)為基
    的頭像 發(fā)表于 01-07 09:30 ?1309次閱讀
    主站蜘蛛池模板: 亚洲欧美高清在线精品一区 | 久久永久免费视频 | 啦啦啦视频在线观看WWW | av色天堂2018在线观看 | 老司机亚洲精品影院 | 精品人妻无码一区二区三区蜜桃臀 | 古代荡乳尤物H妓女调教 | 成人国产精品免费网站 | 在线视频 中文字幕 | 午夜国产大片免费观看 | 亚洲 欧美 另类 中文 在线 | 国产中文字幕在线 | 中文字幕久久熟女人妻AV免费 | 色综合久久88色综合天天提莫 | 2019久久这里只精品热在线观看 | porono日本xxx| 0855福利| 在线观看免费视频播放视频 | www.久久精品视频 | 女人精69xxxxx| 年轻的的小婊孑2中文字幕 你是淫荡的我的女王 | 牲高潮99爽久久久久777 | 久久re这里精品23 | 欧美精品一卡二卡 | 国产成人亚洲精品老王 | 久久亚洲欧美国产综合 | 99久久精品久久久久久清纯 | 亚洲高清视频免费 | 亚洲精品一区三区三区在线观看 | 欧美香蕉大胸在线视频观看 | 一道精品视频一区二区 | 极品少妇伦理一区二区 | 真实国产熟睡乱子伦对白无套 | 男人大臿蕉香蕉大视频 | 精品久久久噜噜噜久久久app | 欧美阿v在线免播播放 | 亚洲乱码中文字幕久久孕妇黑人 | 性啪啪chinese东北女人 | 欧美日韩国产高清综合二区 | 狠狠国产欧美在线视频 | 精品人妻伦一二三区久久AAA片 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品