国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Verilog流水線設(shè)計(jì)——Pipeline

這篇具有很好參考價(jià)值的文章主要介紹了Verilog流水線設(shè)計(jì)——Pipeline。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 前言

在工程師實(shí)際開發(fā)過程中,可能會(huì)經(jīng)常遇到這樣的需求:數(shù)據(jù)從數(shù)據(jù)源端不斷地持續(xù)輸入FPGA,F(xiàn)PGA需要對(duì)數(shù)據(jù)進(jìn)行處理,最后將處理好的數(shù)據(jù)輸出至客戶端。

在數(shù)據(jù)處理過程中,可能需要一系列的處理步驟。比如常規(guī)的信號(hào)進(jìn)行處理步驟有(這里的處理步驟只是舉個(gè)例子):信號(hào)解調(diào)、濾波、傅里葉變換。

假如數(shù)據(jù)源每10ns輸入一個(gè)數(shù)據(jù),一個(gè)采用數(shù)據(jù)經(jīng)過信號(hào)解調(diào)需要10ns,完成濾波需20ns,傅里葉變換需要30ns。我們?cè)撊绾斡胿erilog語言設(shè)計(jì)硬件電路使得數(shù)據(jù)處理效率高效?

2. 面臨問題

FPGA一個(gè)較大的優(yōu)勢(shì)是其并行處理機(jī)制,即利用并行架構(gòu)實(shí)現(xiàn)信號(hào)/數(shù)據(jù)處理的功能。
大家首先想到的方法就是復(fù)制多份數(shù)據(jù)處理電路,如下圖所示:
Verilog流水線設(shè)計(jì)——Pipeline
Verilog流水線設(shè)計(jì)——Pipeline

將數(shù)據(jù)處理電路復(fù)制6份,這樣即便每路數(shù)據(jù)處理需要60ns,也能保證整個(gè)由6路處理鏈路組成的數(shù)據(jù)模塊能處理每10ns輸出一個(gè)數(shù)據(jù)的數(shù)據(jù)源。

這種解決方案的確利用了FPGA獨(dú)特的優(yōu)勢(shì),但面臨的問題是顯而易見的,它需要消耗大量的硬件資源。比如當(dāng)處理算法較復(fù)雜時(shí),一條處理鏈路可能就用掉了FPGA相應(yīng)60%的資源,這樣除非換更大容量的FPGA,否則在當(dāng)前FPGA上即使復(fù)制兩遍處理鏈路的電路都是不支持的。

此外,我們深入分析會(huì)發(fā)現(xiàn),電路雖然被復(fù)制了6份,但在同一時(shí)刻電路被使用率是很低的。假設(shè)輸入一個(gè)數(shù)據(jù)時(shí)刻為0ns,則在第50ns時(shí),真正處于工作狀態(tài)的電路如下圖所示(黃色標(biāo)的區(qū)域):
Verilog流水線設(shè)計(jì)——Pipeline

可見同一時(shí)刻,工作的電路比例很低,其它白色的電路模塊都是閑置的未工作的電路。

3. Pipeline解決方案

所謂流水線(pipeline)處理,如同生產(chǎn)裝配線一樣,將操作執(zhí)行工作量分成若干個(gè)時(shí)間上均衡的操作段,從流水線的起點(diǎn)連續(xù)地輸入,流水線的各操作段以重疊方式執(zhí)行。

這使得操作執(zhí)行速度只與流水線輸入的速度有關(guān),而與處理所需的時(shí)間無關(guān)。這樣,在理想的流水操作狀態(tài)下,其運(yùn)行效率很高。

比如仍然以上面信號(hào)處理例子為例,我們不需要去復(fù)制6份同樣的電路,而是去優(yōu)化我們單條信號(hào)處理電路。利用pipeline的設(shè)計(jì)理念,我們需要把處理時(shí)間大于10ns的電路模塊拆分成多個(gè)小于等于10ns的子電路(操作信號(hào)處理工作量分成若干個(gè)時(shí)間上均衡的處理段),并且每個(gè)子電路的輸入是前一級(jí)子電路的輸出,每一級(jí)子電路都能鎖存當(dāng)前時(shí)鐘周期的輸出結(jié)果。改造后的電路如下圖所示:
Verilog流水線設(shè)計(jì)——Pipeline

對(duì)于一個(gè)輸入數(shù)據(jù)的樣本來說,數(shù)據(jù)是串行被處理的,但對(duì)于多個(gè)輸入數(shù)據(jù)來說,各個(gè)處理階段是并行執(zhí)行的,所以數(shù)據(jù)處理從整體上看是并行執(zhí)行的,由于是并行執(zhí)行,所以能夠充分利用FPGA資源。

需要注意的是,在工作時(shí)鐘頻率一定的情況下,pipeline的設(shè)計(jì)思路并不會(huì)提高對(duì)單個(gè)數(shù)據(jù)的處理速度,但該設(shè)計(jì)方式可以極大提高數(shù)據(jù)的吞吐率。同時(shí)由于pipeline的設(shè)計(jì)方式降低了FPGA寄存器間的傳播延時(shí),反而又使得設(shè)計(jì)出來的電路能以更高的系統(tǒng)時(shí)鐘進(jìn)行工作,某種程度上又會(huì)提高FPGA系統(tǒng)的工作速度獲取更快的計(jì)算處理速率。

由于網(wǎng)上pipeline示例代碼資源很多,本文就不提供pipeline的示例代碼了。

4. 小結(jié)

利用pipeline的設(shè)計(jì)方法,可以提高FPGA系統(tǒng)的工作速度。這種方法可廣泛運(yùn)用于各種設(shè)計(jì),特別是大型的、對(duì)速度要求較高的系統(tǒng)設(shè)計(jì)。雖然有時(shí)候采用流水線反而會(huì)增大對(duì)資源的使用,但是它可降低寄存器間的傳播延時(shí),保證系統(tǒng)維持高的系統(tǒng)時(shí)鐘速度。

在實(shí)際應(yīng)用中,考慮到資源的使用和速度的要求,可以根據(jù)實(shí)際情況來選擇流水線的級(jí)數(shù)以滿足設(shè)計(jì)需要。

參考文獻(xiàn)

[1]《多線程優(yōu)化-pipeline模式》, https://zhuanlan.zhihu.com/p/51152731
[2]《流水線技術(shù)原理和Verilog HDL實(shí)現(xiàn)》, https://www.cnblogs.com/shengansong/archive/2011/05/23/2054414.html


對(duì)我們發(fā)布文章感興趣的小伙伴,請(qǐng)關(guān)注我們公眾號(hào) “FpgaHome” 吧。文章來源地址http://www.zghlxwxcb.cn/news/detail-473805.html

到了這里,關(guān)于Verilog流水線設(shè)計(jì)——Pipeline的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Jenkins】pipeline流水線

    【Jenkins】pipeline流水線

    流水線既能作為任務(wù)的本身,也能作為jenkinsfile,使用流水線可以讓我們的任務(wù)從ui手動(dòng)操作,轉(zhuǎn)換為代碼化,像docker的dockerfile一樣,從shell命令到配置文件,更適合大型項(xiàng)目,可以讓團(tuán)隊(duì)其他開發(fā)者同事參與進(jìn)來,同時(shí)也可以編輯開發(fā)jenkinswebui不能完成的復(fù)雜的構(gòu)建邏輯,作

    2024年02月09日
    瀏覽(37)
  • 使用Gitlab管理Jenkins Pipeline流水線

    使用Gitlab管理Jenkins Pipeline流水線

    1、首先需要將已經(jīng)調(diào)試好的Jenkins pipeline文件上傳到git庫中,推薦以 Jenkinsfile 命名 放至git庫根目錄 上傳完成后 在git庫中可以查看到 如下圖所示: 2、配置Jenkins任務(wù) 完成后pipeline腳本會(huì)存放在git庫上面進(jìn)行管理編輯了,當(dāng)我們構(gòu)建此任務(wù)時(shí)會(huì)從git庫中獲取pipeline流水線進(jìn)行執(zhí)

    2024年02月12日
    瀏覽(24)
  • 【計(jì)組實(shí)驗(yàn)】基于Verilog的多周期非流水線MIPS處理器設(shè)計(jì)

    【計(jì)組實(shí)驗(yàn)】基于Verilog的多周期非流水線MIPS處理器設(shè)計(jì)

    設(shè)計(jì)多周期非流水線MIPS處理器,包括: 完成多周期MIPS處理器的Verilog代碼; 在Vivado軟件上進(jìn)行仿真; 編寫MIPS代碼驗(yàn)證MIPS處理器; 相關(guān)代碼及資源的下載地址如下: 本實(shí)驗(yàn)的Vivado工程文件和實(shí)驗(yàn)文檔:Multi-Cycle MIPS Processor.zip(272KB) QtSpim 9.1.23和Vivado 2019.2的安裝包:QtSpim Viv

    2024年02月11日
    瀏覽(18)
  • 華為云流水線CodeArts Pipeline怎么樣?能實(shí)現(xiàn)哪些功能?

    華為云流水線CodeArts Pipeline怎么樣?能實(shí)現(xiàn)哪些功能?

    華為云流水線服務(wù) CodeArts Pipeline ,旨在提升編排體驗(yàn),開放插件平臺(tái),并提供標(biāo)準(zhǔn)化的DevOps企業(yè)治理模型,將華為公司內(nèi)的優(yōu)秀研發(fā)實(shí)踐賦能給伙伴和客戶。 靈活編排、高效調(diào)度 開放流水線插件 內(nèi)置企業(yè)DevOps研發(fā)治理模型 體驗(yàn)通道:https://devcloud.cn-north-4.huaweicloud.com/cicd/

    2024年02月15日
    瀏覽(25)
  • (十四)devops持續(xù)集成開發(fā)——jenkins流水線使用pipeline方式發(fā)布項(xiàng)目

    (十四)devops持續(xù)集成開發(fā)——jenkins流水線使用pipeline方式發(fā)布項(xiàng)目

    本節(jié)內(nèi)容我們使用另外一種方式pipeline實(shí)現(xiàn)項(xiàng)目的流水線部署發(fā)布,Jenkins Pipeline是一種允許以代碼方式定義持續(xù)集成和持續(xù)交付流水線的工具。通過Jenkins Pipeline,可以將整個(gè)項(xiàng)目的構(gòu)建、測(cè)試和部署過程以腳本的形式寫入Jenkinsfile中,實(shí)現(xiàn)對(duì)整個(gè)流程的可視化管理和控制。在

    2024年02月21日
    瀏覽(37)
  • 解鎖極狐GitLab 自動(dòng)化功能:Webhook 觸發(fā) Pipeline 與計(jì)劃流水線

    解鎖極狐GitLab 自動(dòng)化功能:Webhook 觸發(fā) Pipeline 與計(jì)劃流水線

    本文來自: 楊洪麗 極狐GitLab 高級(jí)網(wǎng)站可靠性工程師(SRE) 只使用極狐GitLab 存放代碼? 那你就 OUT 啦! 如果你也遇到了如圖 A / B / C / D 各位同學(xué)的煩惱,不要錯(cuò)過這篇能夠讓你日常工作更高效的內(nèi)容。 關(guān)于 A 和 B 同學(xué)的煩惱,可以使用? Webhook?觸發(fā) Pipeline ,打通工作消息通知

    2024年02月04日
    瀏覽(19)
  • FPGA流水線除法器(Verilog)原理及實(shí)現(xiàn)

    FPGA流水線除法器(Verilog)原理及實(shí)現(xiàn)

    ??除法器的計(jì)算過程如下圖所示。 假設(shè)數(shù)值的位寬為N。 Step1:分別將被除數(shù)和除數(shù)擴(kuò)展至原來2倍位寬(2N),被除數(shù)在其左邊補(bǔ)N位0,除數(shù)在其右邊補(bǔ)N位0; Step2:將被除數(shù)依次左移(每次左移1位),末位補(bǔ)數(shù)值(該數(shù)值為被除數(shù)高N位與除數(shù)高N位的商),高N位為被除數(shù)高

    2024年02月11日
    瀏覽(26)
  • 流水線乘法器的原理及verilog代碼

    流水線乘法器的原理及verilog代碼

    二進(jìn)制數(shù)乘法的顯著特點(diǎn)就是可以將乘法轉(zhuǎn)換為移位,乘2就是左移一位,乘2^n就是左移n位。而一個(gè)二進(jìn)制數(shù)又可以看成是由若干個(gè)2的i次方的和。 設(shè)被乘數(shù)和乘數(shù)分別為M、N,且都是32位的二進(jìn)制數(shù),乘積結(jié)果為64位 的向量CO則 。 所以乘法可以由移位電路和加法器完成。計(jì)算

    2024年02月10日
    瀏覽(24)
  • 基于verilog的四級(jí)流水線實(shí)現(xiàn)并行fft16(可計(jì)算小數(shù)和負(fù)數(shù))

    基于verilog的四級(jí)流水線實(shí)現(xiàn)并行fft16(可計(jì)算小數(shù)和負(fù)數(shù))

    目錄 夯實(shí)基礎(chǔ)--FFT算法 定點(diǎn)運(yùn)算--verilog實(shí)現(xiàn)小數(shù)運(yùn)算 Verilog代碼實(shí)現(xiàn) ?FFT系數(shù) W 的準(zhǔn)備 ?輸入數(shù)值的初始化 蝶形運(yùn)算端點(diǎn)處的值 仿真結(jié)果展示 總結(jié) ? ? ? ?FFT是DFT的一種快速算法而不是一種新的變換,他可以在數(shù)量級(jí)的意義上提高運(yùn)算速度。它主要有兩種實(shí)現(xiàn)方法:一種是

    2024年02月05日
    瀏覽(49)
  • 基于Verilog HDL的FFT算法硬件實(shí)現(xiàn)(8點(diǎn),三級(jí)流水線,DIT-FFT)

    基于Verilog HDL的FFT算法硬件實(shí)現(xiàn)(8點(diǎn),三級(jí)流水線,DIT-FFT)

    關(guān)于fft的相關(guān)知識(shí),在之前的文章中,有過介紹,這里不再具體介紹,可以參考學(xué)習(xí)。 從傅里葉級(jí)數(shù)(FS)到傅里葉變換(FT)最后到離散傅里葉變換(DFT)_小張愛學(xué)習(xí)哦的博客-CSDN博客_fs傅里葉級(jí)數(shù) FFT原理(基2DIT-FFT)及C語言編程思路及實(shí)現(xiàn)_小張愛學(xué)習(xí)哦的博客-CSDN博客_c語言

    2024年02月14日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包