hls fifo_HLS優化方法DATAFLOW你用了嗎

f7a969c1672aa04fbb072c34b73c65f7.png上期內容:異步跨時鐘域電路該怎么約束60288dceeb06b55f28701bd230eada84.png

DATAFLOW作為HLS的一種優化方法,對于改善吞吐率(Throughput)、降低延遲(Latency)非常有效。

DATAFLOW的作用對象

DATAFLOW可以作用于函數,也可以作用于for循環。如下圖所示(圖片來源Figure62, Figure 63, ug902)。無論是作用于函數還是for循環,都要求數據在函數之間順序流動,沒有反饋回路。

1b1a4930932da38e89440493894eb2cf.pngDATAFLOW優化前后對比我們看一個簡單的案例,如下圖所示(圖片來源Figure64, ug902)。頂層函數top下調用了3個子函數。這3個子函數之間的數據是順序流動的,因此可以用DATAFLOW來優化。如果不使用DATAFLOW,意味著func_A處理結束,才能處理func_B,func_B處理結束,才能處理func_C。這其實就是C語言的處理方式即順序執行。但從硬件角度看,只有func_A有輸出數據,就可以傳遞給func_B進行處理。這就實現了這3個函數的并行處理,從而將II由8降至3,Latency由8降至5。419c153cc526d253626cdb91ddb8b20e.pngDATAFLOW的原理DATAFLOW需要額外的硬件資源開銷。這是因為Vivado HLS會對相應的函數或者循環進行分析,然后對中間數據(子函數的輸出或者循環體中的變量)進行緩存。緩存可能需要用到FIFO或者采用乒乓Buffer(RAM)的方式,如下圖所示(圖片來源Figure65, ug902)。通常對于標量,HLS會采用FIFO緩存;對于數組,HLS會采用乒乓Buffer緩存。

165f52b33176a6b84b75658173ee1d35.png

在報告中確認DATAFLOW

一旦使用了DATAFLOW,在綜合報告中會明確地顯示處理。同時,在Analysis窗口中可以看到紅色橢圓方框標記的圖標,如下圖所示。

ef1ec923278267ea99f4f9d2803a93b2.pngebacb1ebe592d5587b3e556b872257c8.pngafcf0b9ee561c3e02c2659402ba5da25.pngAI Engine到底是什么?

ACAP不可不知的幾個基本概念

HLS中如何控制流水程度

Vivado HLS學習資料有哪些

如何查看可綜合C代碼的中間結果

如何在C代碼中插入移位寄存器

HLS IP Library?HLS Math Library:csim ?C/RTL co-sim(2)HLS Math Library:csim ?C/RTL co-sim(1)如何復用關鍵路徑的布局布線信息Vivado學習資料有哪些?異步跨時鐘域電路怎么設計ECO都有哪些應用FPGA中的CLOCK REGION和SLR是什么含義FPGA中的BEL, SITE, TILE是什么含義約束文件有哪些如何高效復用Block的位置信息?如何復用關鍵寄存器的位置信息部分可重配置都生成哪些.bit文件VIO你用對了嗎Device視圖下能看到什么Schematic視圖下能看到什么都是pin,有什么區別都是net,有什么區別如何快速查找目標cell學習筆記:多層感知器學習筆記:單層感知器的局限性學習筆記:單層感知器基礎知識學習筆記:神經網絡學習算法學習筆記:神經網絡模型學習筆記:ReLU的各種變形函數學習筆記:神經元模型(2)學習筆記:神經元模型(1)學習筆記:深度學習之“深”學習筆記:深度學習之“學習”學習筆記:人工智能、機器學習和深度學習2019文章匯總5b64b8a0179c5353e2f0bb000fb1b666.png97d267f7f1181897b0ce0d1df130317e.png文 | Lauren 圖 | LaurenCopyright @ Lauren的FPGA轉載事宜請私信 | 獲得授權后方可轉載5e661ad6a42c2f068c62578f8204c83a.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374456.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374456.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374456.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 8虛擬擴展方法

我一直關注Java 8 Lambda表達式項目的發展已經有一段時間了,我對其當前的進展狀態感到非常興奮。 我發現的最新“易于理解”的演示文稿是這樣的: http://blogs.oracle.com/briangoetz/resource/devoxx-lang-lib-vm-co-evol.pdf 現在,作為一名…

python爬蟲 庫_七款必備的Python爬蟲庫,你知道幾個?

很多你需要的信息數據都是在網站內,雖然有些網站的數據會以整潔、結構化的形式呈現,但大部分網站卻無法做到這樣。因此,當你想要獲得一些數據的時候,你需要一些爬蟲工具幫助抓取,然后再對其進行分析。今天,…

62個Android Studio小技巧合集

轉載: 原文鏈接:http://laobie.github.io/android/2016/02/14/android-studio-tips.html轉載于:https://www.cnblogs.com/kesteler/p/5618490.html

在Hibernate,EhCache,Quartz,DBCP和Spring中啟用JMX

繼續使用JMX的過程(請參閱: 人類JMX ),我們將學習如何在一些流行的框架中啟用JMX支持(通常是統計和監視功能)。 這些信息大部分都可以在項目的主頁上找到,但是我決定在收集這些信息的同時&#…

二叉樹遍歷(前中后)

二叉樹前序遍歷&#xff1a; /*** Definition for binary tree* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution { public:vector<int> preorderTravers…

python語言程序設計實踐教程答案實驗六_Python程序設計實踐教程

書名&#xff1a;Python程序設計實踐教程 定價&#xff1a;29.8 ISBN&#xff1a;9787115532602 作者&#xff1a;儲岳中 薛希玲 版次&#xff1a;*1版 出版時間&#xff1a;2020-04 內容提要&#xff1a; 本書是Python語言程序設計的配套實踐教材&#xff0c;分為三部分&#…

400多萬微信用戶如何“變現”?凱叔說了五大秘訣與教訓

凱叔&#xff0c;原名王凱&#xff0c;自媒體“凱叔講故事”創始人&#xff0c;近日在獅享家班委會上做了分享&#xff0c;全是實實在在的實驗性方法論。以下是王凱的分享內容&#xff0c;整理 / 垅青 我講的主題叫“基于內容的MVP探索”&#xff0c;MVP是什么東西&#xff1f;…

使用dbUnit,JSON,HSQLDB和JUnit規則進行數據庫單元測試

在本周TDD課程的運行中&#xff0c;我認為編寫一些夾具以簡化dbUnit的使用將很有趣。 我最初的想法只是教dbUnit有關JSON的知識&#xff0c;但事實證明Lieven Doclo已經做到了。 因此&#xff0c;我決定更進一步&#xff0c;還將dbUnit與JUnit Rules結合起來&#xff0c;并提供…

Codeforces Round #321 (Div. 2) E. Kefa and Watch 線段樹hash

E. Kefa and Watch Time Limit: 1 Sec Memory Limit: 256 MB 題目連接 http://codeforces.com/contest/580/problem/EDescription One day Kefa the parrot was walking down the street as he was on the way home from the restaurant when he saw something glittering by…

python文字游戲源代碼求年紀_Python實現猜年齡游戲代碼實例

1. 在猜年齡的基礎上編寫登錄、注冊方法&#xff0c;并且把猜年齡游戲分函數處理&#xff0c;如 2. 登錄函數 3. 注冊函數 4. 猜年齡函數 5. 選擇獎品函數 代碼如下 import json real_age 18 prize_list [好迪洗發水, 綠箭俠, 小豬佩奇, 布娃娃, 再來一次!] import random us…

KVC 與 KVO

一、Key-Value Coding (KVC)鍵值編碼 KVC&#xff0c;即是指 NSKeyValueCoding&#xff0c;一個非正式的 Protocol&#xff0c;提供一種機制來間接訪問對象的屬性。KVO 就是基于 KVC 實現的關鍵技術之一。 一個對象擁有某些屬性。比如說&#xff0c;一個 Person 對象有一個 nam…

使用模擬的單元測試–測試技術5

我的最后一個博客是有關測試代碼方法的一系列博客中的第四篇&#xff0c;演示了如何創建使用存根對象隔離測試對象的單元測試。 今天的博客探討了有時被視為對立的技術&#xff1a;使用模擬對象進行單元測試。 同樣&#xff0c;我使用了從數據庫檢索地址的簡單方案&#xff1a;…

多線程中的volatile和偽共享

偽共享 false sharing&#xff0c;顧名思義&#xff0c;“偽共享”就是“其實不是共享”。那什么是“共享”&#xff1f;多CPU同時訪問同一塊內存區域就是“共享”&#xff0c;就會產生沖突&#xff0c;需要控制協議來協調訪問。會引起“共享”的最小內存區域大小就是一個cache…

C語言代碼規范(一)縮進與換行

一、縮進的空格數為4個。最好配置代碼編輯器將TAB鍵設置為空格替換&#xff0c;避免出現另一個編輯器打開時格式變亂的情況。 例如Notepad設置 KEIL設置 二、“{” 和 “}”各自獨占一行。 不規范例子&#xff1a; for(i 0; i < student_num; i) { if((score[i] > 0…

armv7 cortex a系列編程手冊_AWTK能為現代GUI編程帶來何種改變?

AWTK是一個伸縮性極強的嵌入式圖形框架&#xff0c;它的誕生會給GUI編程研發工程師帶來哪些改變&#xff1f;AWTK是一個伸縮性極強的嵌入式圖形框架&#xff0c;可在Cortex-M3這樣低端的單片機上運行&#xff0c;也可以在Cortex-A7/A8/A9等處理器&#xff0c;甚至DSP以及X86處理…

【轉】各種概念POJO、JAVABEAN、DAO、DTO、PO、VO、BO、SSH、EJB

POJO&#xff08;pure old java object&#xff09; 是普通java類&#xff0c;有一些private的參數作為對象的屬性&#xff0c;然后針對每一個參數定義get和set方法訪問的接口。我看到這個定義&#xff0c;心里就有個疑問了&#xff0c;這個POJO跟JavaBean的定義怎么就這么像&a…

為什么要編寫單元測試–測試技巧8

我對最近在“您應該測試什么”上的博客有很多反應&#xff0c;有些人出于各種原因同意我的想法&#xff0c;另一些人則認為建議某些類可能不需要單元測試是非常危險的。 已經處理了什么測試&#xff0c;今天的博客涉及為什么要編寫單元測試&#xff0c;而今天的示例代碼是基于一…

Git遷移 從SVN到Git

Migrating from SVN to Git 首先我們需要在Stach或者GitHub上新建一個Repository, 拿到它的URL。 接下來參照如下步驟 : At first we should create a new git repository at Stash and get the repository URL, and then follow below steps: 1. 切換到本地git工作目錄 chang…

C語言代碼規范(二)空格

一、逗號, 之后加空格 printf("error! score[%d] %d\n", i, score[i]); 二、分號; 之后加空格 for(i 0; i < student_num; i) 三、關系運算符<、<、>、>、、! 前后加空格 if( (score[i] > 0) && (score[i] < 100) ) 四、賦值運算符…

c++ 多重背包狀態轉移方程_動態規劃入門——詳解經典問題零一背包

本文始發于個人公眾號&#xff1a;TechFlow&#xff0c;原創不易&#xff0c;求個關注今天是周三算法與數據結構專題的第12篇文章&#xff0c;動態規劃之零一背包問題。在之前的文章當中&#xff0c;我們一起探討了二分、貪心、排序和搜索算法&#xff0c;今天我們來看另一個非…