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

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

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

一個典型的流水線設(shè)計

FPGA快樂學習 ? 來源:FPGA快樂學習 ? 2023-05-08 10:55 ? 次閱讀

流水線設(shè)計通??梢栽谝欢ǔ潭壬咸嵘到y(tǒng)的時鐘頻率,因此常常作為時序性能優(yōu)化的一種常用技巧。如果某個原本單個時鐘周期完成的邏輯功能塊可以進一步細分為若干個更小的步驟進行處理,而且整個數(shù)據(jù)處理過程是單向的,即沒有反饋運算或者迭代運算,前一個步驟的輸出是下一個步驟的輸入,那么就可以考慮采用流水線設(shè)計的方法來提高工作的時鐘頻率。

如圖3.23所示,典型的流水線設(shè)計是將原本一個時鐘周期完成的較大的組合邏輯(上圖)通過合理的分割后由多個時鐘周期分別完成n個較小的組合邏輯(下圖)。原本1個時鐘周期完成的邏輯功能拆分為n個時鐘周期以流水線方式實現(xiàn),雖然該設(shè)計的時鐘頻率會有所提升,但是需要額外付出n-1個時鐘周期的初始延時。

386d74cc-ed41-11ed-90ce-dac502259ad0.jpg

圖3.23 流水線設(shè)計的寄存器模型

如圖3.24所示,假設(shè)一個流水線設(shè)計需要四個步驟完成一個數(shù)據(jù)處理過程,那么從有數(shù)據(jù)輸入(in1)的第1個時鐘周期(1clk)開始,直到第4個時鐘周期(4clk)才處理第1個輸入數(shù)據(jù);如果輸出時再用寄存器打一拍,通常是第5個時鐘周期才會輸出第1個數(shù)據(jù)的處理結(jié)果;但在以后的每個時鐘周期內(nèi)都會有處理完成的數(shù)據(jù)持續(xù)輸出。也就是說,流水線設(shè)計在提高工作的時鐘頻率的情況下,只在開始處理時需要一定的延時時間(和流水線級數(shù)正相關(guān)),以后就會不間斷的輸出數(shù)據(jù),從而提高處理速度。如果該設(shè)計不采用流水線設(shè)計,那么該實例處理一個數(shù)據(jù)就需要4個時鐘周期,而流水線設(shè)計則能夠提高最多4倍的處理速度(取決于設(shè)計的整體性能水平,通常情況下是提升不了4倍的)。

38828ac4-ed41-11ed-90ce-dac502259ad0.jpg

圖3.24 流水線設(shè)計實現(xiàn)

這里我們來看一個除法器IP核進行流水線優(yōu)化的例子。如圖3.25所示,在Xilinx提供的除法器IP核的配置頁面中,有一個時延選項(Latency Options),這個時延其實就是我們剛剛提到的數(shù)據(jù)從輸入到輸出,經(jīng)過內(nèi)部的流水線處理邏輯,所需要的初始延時時鐘周期數(shù)??上攵?,這個延時設(shè)置得越大,對應(yīng)的流水線級數(shù)越高,可以達到的時序性能應(yīng)該是會約好的;但這個延時值如果設(shè)置的較小,對應(yīng)的流水線級數(shù)就越低,那么勢必會影響它的時序性能。以筆者的經(jīng)驗,在一些算法實現(xiàn)中,經(jīng)常會涉及除法器IP核的使用,雖然流水線級數(shù)設(shè)置得高一些能夠帶來更好的時序性能,但是往往也會涉及與該除法器計算結(jié)果相關(guān)的中間結(jié)果也需要用寄存器進行較多的延時緩存,有時這也是一筆不小的資源開銷,所以就比較矛盾,因此通常會選擇一個比較折中的時延參數(shù),而不是單純的“越大越好”。

38a525a2-ed41-11ed-90ce-dac502259ad0.jpg

圖3.25 除法器IP的配置頁面

在工程note10_prj002中,使用了Latency=2的一個較小的時延和流水線級數(shù)。在編譯后,查看時序結(jié)果,如圖3.26,對于50MHz這樣較低頻率下的時鐘(20.0ns時鐘周期),竟然也有3條和除法器(uut_div_gen_1)相關(guān)的3條路徑出現(xiàn)了時序違規(guī)(Slack為負)。

38bad636-ed41-11ed-90ce-dac502259ad0.jpg

圖3.26 2級流水線的時序結(jié)果

在工程note10_prj003中,當我們嘗試修改Latency=4,將除法器的流水線數(shù)增加1倍后再做編譯。如圖3.27,此時已經(jīng)不存在時序違規(guī)路徑了,并且最小的時序余量也高達4.022ns,性能提升明顯。

38d2c728-ed41-11ed-90ce-dac502259ad0.jpg

圖3.27 4級流水線的時序結(jié)果

對于流水線設(shè)計是否能夠?qū)嶋H的提升設(shè)計工程的時鐘頻率,并不能僅從局部的優(yōu)化去考慮,而需要從整體的設(shè)計去考量。在時序性能的優(yōu)化中,通常是先找到時序的關(guān)鍵路徑,即時鐘頻率的瓶頸所在,從關(guān)鍵路徑下手進行必要的流水線優(yōu)化,如此才有可能提升性能。

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

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120377
  • Xilinx
    +關(guān)注

    關(guān)注

    71

    文章

    2167

    瀏覽量

    121428
  • 流水線
    +關(guān)注

    關(guān)注

    0

    文章

    120

    瀏覽量

    25739
  • 除法器
    +關(guān)注

    關(guān)注

    2

    文章

    14

    瀏覽量

    13893
  • 時序
    +關(guān)注

    關(guān)注

    5

    文章

    387

    瀏覽量

    37333

原文標題:經(jīng)典設(shè)計思想:流水線設(shè)計

文章出處:【微信號:FPGA快樂學習,微信公眾號:FPGA快樂學習】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA中的流水線設(shè)計

    處理速度)。第二 什么時候用流水線設(shè)計使用流水線般是時序比較緊張,對電路工作頻率較高的時候。典型情況如下:1)功能模塊之間的流水線,用乒乓
    發(fā)表于 10-26 14:38

    現(xiàn)代RISC中的流水線技術(shù)

    流水線技術(shù)是提高系統(tǒng)吞吐率的項強大的實現(xiàn)技術(shù),并且不需要大量重復設(shè)置硬件。20世界60年代早期的些高端機器中第次采用了流水線技術(shù)。第
    發(fā)表于 03-01 17:52

    周期精確的流水線仿真模型

    使用軟件仿真硬件流水線是很耗時又復雜的工作,仿真過程中由于流水線的沖突而導致運行速度緩慢。本文通過對嵌入式處理器的流水線, 指令集, 設(shè)備控制器等內(nèi)部結(jié)構(gòu)的分析和
    發(fā)表于 12-31 11:30 ?9次下載

    什么是流水線技術(shù)

    什么是流水線技術(shù) 流水線技術(shù)
    發(fā)表于 02-04 10:21 ?3927次閱讀

    流水線中的相關(guān)培訓教程[1]

    流水線中的相關(guān)培訓教程[1]  學習目標     理解流水線中相關(guān)的分類及定義;
    發(fā)表于 04-13 15:56 ?1052次閱讀

    電鍍流水線的PLC控制

    電鍍流水線的PLC控制電鍍流水線的PLC控制電鍍流水線的PLC控制
    發(fā)表于 02-17 17:13 ?36次下載

    裝配流水線控制系統(tǒng)設(shè)計

    裝配流水線控制系統(tǒng)設(shè)計
    發(fā)表于 12-17 15:26 ?14次下載

    Verilog基本功之:流水線設(shè)計Pipeline Design

    ,并暫存中間數(shù)據(jù)的方法。 目的是將大操作分解成若干的小操作,每步小操作的時間較小,所以能提高頻率,各小操作能并行 執(zhí)行,所以能提高數(shù)據(jù)吞吐率(提高處理速度)。 二. 什么時候用流水線
    發(fā)表于 09-25 17:12 ?6418次閱讀

    FPGA之為什么要進行流水線的設(shè)計

    流水線又稱為裝配線,種工業(yè)上的生產(chǎn)方式,指每一個生產(chǎn)單位只專注處理某一個片段的工作。以提高工作效率及產(chǎn)量;按照流水線的輸送方式大體可以分為
    的頭像 發(fā)表于 11-28 07:04 ?3612次閱讀

    各種流水線特點及常見流水線設(shè)計方式

    按照流水線的輸送方式大體可以分為:皮帶流水裝配線、板鏈線、倍速鏈、插件線、網(wǎng)帶線、懸掛線及滾筒流水線這七類流水線。
    的頭像 發(fā)表于 07-05 11:12 ?7354次閱讀
    各種<b class='flag-5'>流水線</b>特點及常見<b class='flag-5'>流水線</b>設(shè)計方式

    滾筒輸流水線故障排除方法

    在工程建造中,滾筒流水線演著重要的角色。在些工程建造過程中,經(jīng)??吹綕L筒流水線的身影。在工業(yè)不斷發(fā)展下的今天,滾筒流水線日益增長,走向多元化。滾筒
    發(fā)表于 07-08 09:32 ?1910次閱讀

    如何選擇合適的LED生產(chǎn)流水線輸送方式

    LED生產(chǎn)流水線輸送形式分為平面直線傳輸流水線、各種角度平面轉(zhuǎn)彎傳輸流水線、斜面上傳流水線、斜面下傳流水線這四種輸送方式,企業(yè)也是可以根據(jù)L
    發(fā)表于 08-06 11:53 ?1028次閱讀

    嵌入式_流水線

    流水線、定義流水線是指在程序執(zhí)行時多條指令重疊進行操作的種準并行處理實現(xiàn)技術(shù)。各種部件同時處理是針對不同指令而言的,他們可同時為多條指令的不同部分進行工作。? 把
    發(fā)表于 10-20 20:51 ?6次下載
    嵌入式_<b class='flag-5'>流水線</b>

    CPU流水線的問題

    1989 年推出的 i486 處理器引入了五級流水線。這時,在 CPU 中不再僅運行條指令,每流水線在同時刻都運行著不同的指令。這個
    的頭像 發(fā)表于 09-22 10:04 ?2008次閱讀

    什么是流水線 Jenkins的流水線詳解

    jenkins 有 2 種流水線分為聲明式流水線與腳本化流水線,腳本化流水線是 jenkins 舊版本使用的流水線腳本,新版本 Jenkin
    發(fā)表于 05-17 16:57 ?1086次閱讀